Em um sistema SLES 15 SP1, adicionei um usuário ao wheel
grupo:
wheel:x:1003:joeuser
no entanto, quando joeuser
loga como eles mesmos, então tenta su
(se tornar root), eles são solicitados a digitar sua senha. Por que isso pode estar acontecendo?
Aqui está /etc/pam.d/su
:
#%PAM-1.0
auth sufficient pam_wheel.so trust
auth sufficient pam_rootok.so
auth include common-auth
account sufficient pam_rootok.so
account include common-account
password include common-password
session include common-session
session optional pam_xauth.so
Como você está testando as coisas? Você está logando
joeuser
diretamente ou está logando comoroot
(ou outro usuário) e entãosu
-ing para ajoeuser
conta?Eu estava tentando reproduzir o comportamento que você descreveu em um contêiner SLES e encontrei com sucesso (?) o mesmo problema:
Ativei a saída de depuração para o
pam_wheel
módulo......e percebi que estava encontrando este erro:
E isso porque no meu ambiente de contêiner estava faltando o
utmp
arquivo (/run/utmp
, também conhecido como/var/run/utmp
). Ele é usado porpam_wheel
para identificar o usuário que originalmente fez login no tty atual. O arquivo é preenchido pelologin
programa e deve existir primeiro./run/utmp
Depois que eu (a) criei um arquivo vazio e então (b) organizei paralogin
rodar em um dispositivo pty falso, consegui fazer login como um usuário de teste esu
sem uma senha:A execução
su -
ainda falharia até que eu também atualizasse/etc/pam.d/su-l
.Entretanto: se eu fizer login como
root
e depois mudar para um usuário sem privilégios:Novamente serei solicitado a digitar uma senha:
Porque:
pam_wheel
vê que esseroot
foi o usuário que originalmente fez login no terminal, então, mesmo que eu esteja executandosu
como otestuser
usuário,pam_wheel
ele está baseando as decisões na associação ao grupo deroot
.Você pode modificar esse comportamento para que
pam_wheel
não consulte/run/utmp
(e em vez disso use o uid do processo de chamada para determinar permissões) com ause_uid
opção; se eu modificar/etc/pam.d/su
assim:Então o processo acima funciona conforme o esperado.