pam_mountがパスワードを要求するのはなぜですか?


8

私はpam-auth-updateいくつかのpam構成プロファイルを有効にするためにツールを使用しました:

 PAM configuration 
 PAM profiles to enable:
    [*] encfs encrypted home directories           
    [*] Unix authentication                             
    [*] Mount volumes for user                         
    [*] GNOME Keyring Daemon - Login keyring management  
    [*] ConsoleKit Session Management

すべての機能は期待どおりに動作しますが、1つだけ問題がありMount volumes for userますsu。オプションがコマンドに影響を与えるようです。

次の行を/etc/security/pam_mount.conf.xmlファイルに追加しました。

<volume user="morfik" fstype="fuse" path="encfs#/media/Server/Dropbox.encfs/Dropbox/encrypted" mountpoint="/media/Server/Dropbox" />

端末にsu morfik(ルートとして)入力すると、パスワードプロンプトは表示されませんが、代わりに次のように表示されます。

# su morfik
reenter password for pam_mount:

Mount volumes for user上のメニューのオプションをオフにすると、すべてがファイルのように見えてreenter password消えます。/etc/pam.d/ファイルを試してみましたが、PAMの使用経験がなく、動作させることができませんでした。

これらのファイルで何を変更する必要があるか誰かが知っていますか?

アップデート#1

これは/etc/pam.dディレクトリの内容です:

# ls -al /etc/pam.d/
total 104K
drwxr-xr-x   2 root root 4.0K Mar 21 16:21 ./
drwxr-xr-x 153 root root  12K Mar 21 16:11 ../
-rw-r--r--   1 root root  197 Sep  8  2013 atd
-rw-r--r--   1 root root  384 May 25  2012 chfn
-rw-r--r--   1 root root   92 May 25  2012 chpasswd
-rw-r--r--   1 root root  581 May 25  2012 chsh
-rw-r--r--   1 root root 1.2K Mar 20 17:35 common-account
-rw-r--r--   1 root root 1.3K Mar 20 17:35 common-auth
-rw-r--r--   1 root root 1.5K Mar 20 17:35 common-password
-rw-r--r--   1 root root 1.3K Mar 20 17:35 common-session
-rw-r--r--   1 root root 1.2K Mar 20 17:35 common-session-noninteractive
-rw-r--r--   1 root root  527 Jul  3  2012 cron
-rw-r--r--   1 root root   69 Jul 16  2013 cups-daemon
-rw-r--r--   1 root root 4.8K Mar  5 10:18 login
-rw-r--r--   1 root root   92 May 25  2012 newusers
-rw-r--r--   1 root root  520 Jul 22  2008 other
-rw-r--r--   1 root root  147 Feb 13 07:15 passwd
-rw-r--r--   1 root root  255 Oct 15 18:40 polkit-1
-rw-r--r--   1 root root   84 Dec 27 12:40 samba
-rw-r--r--   1 root root 2.1K Feb 15 03:11 sshd
-rw-r--r--   1 root root 2.3K May 25  2012 su
-rw-r--r--   1 root root   95 Jan 15 22:58 sudo
-rw-r--r--   1 root root  108 Oct 19 23:42 xscreensaver

ファイルがありません/etc/pam.d/system-auth

pam_mountコンテンツにどのファイルが含まれているかを確認したところ、次のようになりました。

# egrep -i pam_mount *
common-auth:auth        optional        pam_mount.so
common-session:session  optional        pam_mount.so

ファイルの内容:

#
# /etc/pam.d/common-auth - authentication settings common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of the authentication modules that define
# the central authentication scheme for use on the system
# (e.g., /etc/shadow, LDAP, Kerberos, etc.).  The default is to use the
# traditional Unix authentication mechanisms.
#
# As of pam 1.0.1-6, this file is managed by pam-auth-update by default.
# To take advantage of this, it is recommended that you configure any
# local modules either before or after the default block, and use
# pam-auth-update to manage selection of other modules.  See
# pam-auth-update(8) for details.

# here are the per-package modules (the "Primary" block)
auth    sufficient              pam_encfs.so 
auth    [success=1 default=ignore]  pam_unix.so nullok_secure try_first_pass
# here's the fallback if no module succeeds
auth    requisite           pam_deny.so
# prime the stack with a positive return value if there isn't one already;
# this avoids us returning an error just because nothing sets a success code
# since the modules above will each just jump around
auth    required            pam_permit.so
# and here are more per-package modules (the "Additional" block)
auth    optional    pam_mount.so 
# end of pam-auth-update config

そして:

#
# /etc/pam.d/common-session - session-related modules common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of modules that define tasks to be performed
# at the start and end of sessions of *any* kind (both interactive and
# non-interactive).
#
# As of pam 1.0.1-6, this file is managed by pam-auth-update by default.
# To take advantage of this, it is recommended that you configure any
# local modules either before or after the default block, and use
# pam-auth-update to manage selection of other modules.  See
# pam-auth-update(8) for details.

# here are the per-package modules (the "Primary" block)
session [default=1]         pam_permit.so
# here's the fallback if no module succeeds
session requisite           pam_deny.so
# prime the stack with a positive return value if there isn't one already;
# this avoids us returning an error just because nothing sets a success code
# since the modules above will each just jump around
session required            pam_permit.so
# and here are more per-package modules (the "Additional" block)
session required    pam_unix.so 
session optional    pam_mount.so 
session optional            pam_ck_connector.so nox11
# end of pam-auth-update config

アップデート#2

私はDebianテストを使用しています。の位置を変更しようとしましたが、pam_mount常に同じです。マニュアルのいくつかのセクションを読みましたが、次のようなものがありました。

 When "sufficient" is used in the second column, you must make sure that
   pam_mount is added before this entry. Otherwise pam_mount will not  get
   executed  should  a  previous  PAM module succeed. Also be aware of the
   "include" statements. These make PAM look into the specified  file.  If
   there is a "sufficient" statement, then the pam_mount entry must either
   be in the included file before the "sufficient" statement or before the
   "include" statement.

これを変更するかどうかを確認pam_mountするために/etc/pam.d/suファイルに追加しましたが、それは問題ではありません。pam_mount最初の場合、彼らが言うように、パスワードプロンプトの代わりpam_mount passwordに、システムにログインするときにプロンプ​​トが表示され、それを試してもパスワードを要求されますsu morfik


これはもう解決しましたか?
PSkocik

実際、私はずっと前にencfsの使用をやめ、過去には問題を解決していませんでした。適切なPAMモジュールをインストールしました。問題のユーザーにrootから「su」しても、パスワードプロンプトは表示されません。しかし、ボリューム行を/etc/security/pam_mount.conf.xmlファイルに追加すると、プロンプトが表示され始めます。
ミハイルモルフィコフ2016

回答:


2

同じ問題に出くわした。

設定ファイル()のdisable_interactive横にオプションを追加することで問題が解決されることがわかりました。pam_mount.so/etc/pam.d/common-{auth,session}

直後にpam_mount.soあり、オプションはスペースで区切られています(soファイル名から、および2つの各オプションの間)。

pam_mount.soログイン時にコードが実行されると、スタックの一番上からパスワードを受け取り、そのパスワードを使用してボリュームを復号化します。

suルートセッションから実行している場合、パスワードは必要pam_mount.soないため、パスワードは取得されません。したがって、disable_interactiveオプションがない場合は、パスワードを取得しようとします。

幸い、https://sourceforge.net/p/pam-mount/pam-mount/ci/master/tree/src/pam_mount.cからわかるように、493行目はpam_mount、パスワードなしでも続行しようとします。ボリュームがすでにロック解除されてマウントされている場合はパスワードは必要ないため、問題ありません。


encfsもう使用しないため、パラメーターの一部をテストしました。私はdirsを作成し、適切なPAMモジュールをインストールしました。2つのファイルに「disable_interactive」を追加すると、実際にはパスワードプロンプトが表示されなくなりました。「mount failed」メッセージがパスワードによるものなのか、「encfsディレクトリ」がないためなのかわかりません。とにかく、パスワードなしでユーザーを切り替えることができました。だから私はこの答えを受け入れます。
ミハイルモルフィコフ2016

1

完全に推測されますが、/etc/pam.d/*ファイルを確認して、関連するすべてのPAM構成pam_mountが次のように設定されていることを確認してください。

auth optional pam_mount.so
...
auth include system-auth use_first_pass
...
session optional pam_mount.so

これはpam_mount.confmanページでバックアップされているようです:

抜粋

Messages
   <msg-authpw>pam_mount password:</msg-authpw>
        When  pam_mount cannot obtain a password through PAM, or is 
        configured to not do so in the first place, and is configured to ask 
        for a password interactively as a replacement, this prompt  will be 
        shown.

   <msg-sessionpw>reenter...:</msg-sessionpw>
        In  case  the  'session' PAM block does not have the password (e.g. 
        on su from root to user), it will ask again. This prompt can also be 
        customized.

注:/etc/pam.d/*設定ファイルの順序は、このArchLinux Wikiトピック「Pamマウント」でも参照されています。

参考文献


@MikhailMorfikov-DebianとUbuntuのどちらを使用しているかはわかりませんが、pam_mountこのモジュールを使用してPAM注文を構成する方法の例がいくつかあるので、manページをご覧ください。それを見て、/etc/pam.d/*ファイルと比較できますか?彼のPAMスタックを変更する必要があると思います。これを実行できますstrace -s 2000 -o su.log su morfikか?どのルールがそれを引き起こしているのかを確認できますか?
slm

質問を更新しました。
ミハイルモルフィコフ2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.