Tại sao pam_mount yêu cầu mật khẩu?


8

Tôi đã sử dụng pam-auth-updatecông cụ này để kích hoạt một số cấu hình cấu hình 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

Tất cả các tính năng hoạt động như mong đợi, nhưng có một điều - Mount volumes for usertùy chọn dường như ảnh hưởng đến sulệnh.

Tôi đã thêm dòng sau vào /etc/security/pam_mount.conf.xmltập tin:

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

và khi tôi nhập vào một thiết bị đầu cuối su morfik(với quyền root), sẽ không có bất kỳ dấu nhắc mật khẩu nào, nhưng thay vào đó tôi thấy điều này:

# su morfik
reenter password for pam_mount:

Nếu tôi bỏ Mount volumes for userchọn tùy chọn trong menu ở trên, mọi thứ dường như là tập tin và reenter passwordbiến mất. Tôi đã thử chơi với /etc/pam.d/các tệp, nhưng tôi không có bất kỳ kinh nghiệm nào với PAM và tôi không thể làm cho nó hoạt động được.

Có ai biết những gì phải được thay đổi trong các tập tin này?

CẬP NHẬT # 1

Đây là nội dung của /etc/pam.dthư mục:

# 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

Không có tập tin /etc/pam.d/system-auth.

Tôi đã kiểm tra những tập tin có pam_mounttrong nội dung của họ và tôi đã nhận được điều này:

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

Nội dung của các tập tin:

#
# /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

và:

#
# /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

CẬP NHẬT # 2

Tôi đang sử dụng thử nghiệm Debian. Tôi đã cố gắng thay đổi vị trí của pam_mountnó, nhưng nó luôn giống nhau. Tôi đã đọc một số phần của hướng dẫn, và có một cái gì đó như:

 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.

Tôi thậm chí thêm pam_mountvào /etc/pam.d/sutập tin để kiểm tra nếu điều này làm cho bất kỳ sự khác biệt, nhưng nó không quan trọng. Nếu pam_mounttrước tiên, như họ nói, thay vì lời nhắc mật khẩu, tôi nhận được pam_mount passwordlời nhắc khi tôi đăng nhập vào hệ thống của mình và nó vẫn hỏi mật khẩu khi tôi thửsu morfik


Bạn đã giải quyết điều này chưa?
PSkocik

Thực tế tôi đã ngừng sử dụng encfs từ lâu và tôi đã không giải quyết vấn đề trong quá khứ. Tôi vừa cài đặt mô-đun PAM thích hợp và khi tôi "su" cho người dùng được đề cập từ root, không có dấu nhắc mật khẩu. Nhưng khi tôi thêm một dòng âm lượng vào /etc/security/pam_mount.conf.xmltập tin, lời nhắc bắt đầu xuất hiện.
Mikhail Morfikov

Câu trả lời:


2

Ran vào cùng một vấn đề.

Hóa ra vấn đề được giải quyết bằng cách thêm disable_interactivetùy chọn bên cạnh pam_mount.sotrong tệp cấu hình ( /etc/pam.d/common-{auth,session}).

Nó xuất hiện ngay sau đó pam_mount.sovà các tùy chọn được phân tách bằng dấu cách (từ sotên tệp và giữa hai tùy chọn).

Khi pam_mount.somã được thực thi khi đăng nhập, nó sẽ nhận được mật khẩu từ đầu ngăn xếp và sử dụng mật khẩu đó để giải mã âm lượng của bạn.

Khi bạn đang thực hiện sutừ phiên gốc, không yêu cầu mật khẩu và do đó pam_mount.sosẽ không nhận được bất kỳ mật khẩu nào. Vì vậy, không có disable_interactivetùy chọn, nó sẽ cố gắng lấy mật khẩu.

May mắn thay, như bạn có thể thấy từ https://sourceforge.net/p/pam-mount/pam-mount/ci/master/tree/src/pam_mount.c , dòng 493, pam_mountsẽ cố gắng tiếp tục ngay cả khi không có mật khẩu là tốt, vì mật khẩu không cần thiết nếu âm lượng đã được mở khóa và gắn kết.


Tôi đã kiểm tra một phần tham số vì tôi không sử dụng encfsnữa. Tôi vừa tạo các thư mục và cài đặt các mô-đun PAM thích hợp. Sau khi thêm "vô hiệu hóa" vào hai tệp, nó thực sự dừng hiển thị dấu nhắc mật khẩu. Tôi không chắc liệu thông báo "mount fail" là do mật khẩu hay vì không có "thư mục encfs". Dù sao tôi đã được quản lý để chuyển người dùng mà không cần mật khẩu. Vì vậy, tôi chấp nhận câu trả lời này.
Mikhail Morfikov

1

Tổng số đoán nhưng hãy xem các /etc/pam.d/*tệp của bạn và đảm bảo rằng mọi cấu hình PAM liên quan đến pam_mountđược thiết lập như sau:

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

Điều này dường như được hỗ trợ bởi pam_mount.conftrang người đàn ông:

đoạn trích

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.

LƯU Ý: Thứ tự của các /etc/pam.d/*tệp cấu hình cũng được tham chiếu ở đây trong chủ đề Wiki ArchLinux này có tiêu đề: Gắn kết Pam .

Người giới thiệu


@MikhailMorfikov - Tôi không chắc bạn đang sử dụng Debian hay Ubuntu nhưng nếu bạn xem trang hướng dẫn để pam_mountbiết một số ví dụ về cách cấu trúc đơn hàng PAM của bạn bằng mô-đun này. Bạn có thể xem nó và so sánh nó với các /etc/pam.d/*tập tin của bạn ? Tôi hy vọng rằng bạn cần phải thay đổi xung quanh ngăn xếp PAM của anh ấy. Bạn có thể chạy cái này không: strace -s 2000 -o su.log su morfikđể chúng ta có thể xem quy tắc nào đang vấp nó?
slm

Tôi cập nhật câu hỏi.
Mikhail Morfikov
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.