Eu usei a pam-auth-update
ferramenta para ativar alguns perfis de configuração do 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
Todos os recursos funcionam como esperado, mas há uma coisa - a Mount volumes for user
opção parece afetar o su
comando.
Adicionei a seguinte linha ao /etc/security/pam_mount.conf.xml
arquivo:
<volume user="morfik" fstype="fuse" path="encfs#/media/Server/Dropbox.encfs/Dropbox/encrypted" mountpoint="/media/Server/Dropbox" />
e quando digito um terminal su morfik
(como root), não deve haver nenhum prompt de senha, mas vejo o seguinte:
# su morfik
reenter password for pam_mount:
Se eu desmarquei a Mount volumes for user
opção no menu acima, tudo parece estar em um arquivo e ele reenter password
desaparece. Tentei brincar com /etc/pam.d/
arquivos, mas não tenho experiência com o PAM e não consegui fazê-lo funcionar.
Alguém sabe o que deve ser alterado nesses arquivos?
ATUALIZAÇÃO # 1
Este é o conteúdo do /etc/pam.d
diretório:
# 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
Não há arquivo /etc/pam.d/system-auth
.
Eu verifiquei quais arquivos têm pam_mount
em seu conteúdo e obtive o seguinte:
# egrep -i pam_mount *
common-auth:auth optional pam_mount.so
common-session:session optional pam_mount.so
O conteúdo dos arquivos:
#
# /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
e:
#
# /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
ATUALIZAÇÃO # 2
Estou usando o teste Debian. Eu tentei mudar a posição de pam_mount
, mas é sempre a mesma. Eu li algumas seções do manual e havia algo como:
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.
Eu até adicionei pam_mount
ao /etc/pam.d/su
arquivo para verificar se isso faz alguma diferença, mas isso não importa. Se pam_mount
for o primeiro, como dizem, em vez de um prompt de senha, eu recebo um pam_mount password
aviso quando faço logon no meu sistema e ele ainda solicita uma senha quando tentosu morfik
/etc/security/pam_mount.conf.xml
arquivo, o prompt começa a aparecer.Respostas:
Deparou-se com o mesmo problema.
Acontece que o problema foi resolvido adicionando a
disable_interactive
opção ao ladopam_mount.so
dos arquivos de configuração (/etc/pam.d/common-{auth,session}
).Ele vem logo depois
pam_mount.so
e as opções são separadas por espaços (a partir doso
nome do arquivo e entre cada uma das duas opções).Quando o
pam_mount.so
código é executado em um login, ele recebe a senha da parte superior da pilha e a usa para descriptografar seu volume.Quando você está fazendo
su
uma sessão raiz, nenhuma senha é necessária e, portantopam_mount.so
, não receberá nenhuma senha. Portanto, sem adisable_interactive
opção, ele tentará obter a senha.Felizmente, como você pode ver em https://sourceforge.net/p/pam-mount/pam-mount/ci/master/tree/src/pam_mount.c , linha 493,
pam_mount
tentará prosseguir mesmo sem uma senha, que é bom, porque a senha não é necessária se o volume já estiver desbloqueado e montado.fonte
encfs
mais. Acabei de criar os diretórios e instalei os módulos PAM apropriados. Depois de adicionar "disable_interactive" aos dois arquivos, ele parou de mostrar o prompt de senha. Não tenho certeza se a mensagem "falha na montagem" é por causa da senha ou porque não há "diretório encfs". Enfim, eu fui capaz de mudar de usuário sem uma senha. Então, eu aceito esta resposta.Total palpite, mas dê uma olhada nos seus
/etc/pam.d/*
arquivos e verifique se as configurações do PAM relacionadaspam_mount
estão definidas da seguinte forma:Isso parece ter o backup da
pam_mount.conf
página de manual:excerto
NOTA: A ordem dos
/etc/pam.d/*
arquivos de configuração também é referenciada aqui neste tópico do ArchLinux Wiki intitulado: Pam mount .Referências
fonte
pam_mount
há vários exemplos de como estruturar sua ordem de PAM usando este módulo. Você pode dar uma olhada nisso e compará-lo com seus/etc/pam.d/*
arquivos? Estou esperando que você precise trocar as pilhas de PAMs. Você pode executar isso:strace -s 2000 -o su.log su morfik
para que possamos ver quais regras estão bloqueando?