약간 안에 있는 것 같은su 인증 실패 경고를 억제하는 방법은 무엇입니까?, 그러나 실제로는 명령을 전혀 실행하지 않습니다.
# su limited
su: Authentication failure
# su -s /bin/bash limited
su: Authentication failure
# su -s /bin/bash - limited
su: Authentication failure
루트에서 실행할 때 인증을 확인해야 하는 이유는 무엇입니까?
대부분의 사용자에게는 su
잘 작동합니다 .
# grep limited /etc/passwd
limited:x:1001:1001::/home/limited:/bin/bash
# grep limited /etc/shadow
#
누락되었다고 해서 /etc/shadow
대부분의 다른 사용자가 추가되는 것은 아닙니다 su
.
시도하면 다음 로그 항목이 표시됩니다.
Apr 21 10:43:18 thehostname su: FAILED SU (to limited) root on pts/110
# egrep -v '^#|^$' /etc/pam.d/su
auth sufficient pam_rootok.so
session required pam_env.so readenv=1
session required pam_env.so readenv=1 envfile=/etc/default/locale
session optional pam_mail.so nopen
session required pam_limits.so
@include common-auth
@include common-account
@include common-session
답변1
x
(대부분 사용되지 않는) 비밀번호 필드에 하나가 있습니다 /etc/passwd
. ( man 5 passwd
내 Debian/Raspbian 컴퓨터와온라인) 이는 다음이 있음을 의미합니다.~ 해야 하다다음의 해당 항목은 다음과 같습니다 /etc/shadow
.
비밀번호 필드가 소문자 "x"인 경우 암호화된 비밀번호는 실제로 Shadow(5) 파일에 해당 행이 있어야 합니다.
/etc/shadow file
그렇지 않으면 사용자 계정이 유효하지 않습니다.
마지막 조항을 충족하는지 의심스럽습니다."잘못된 사용자 계정” 그리고 su
너무 조심스러워요.
예(Raspbian), 모든 명령은 루트로 실행됩니다.
grep test.: /etc/passwd
test1:x:1005:1005:Test 1:/home/test1:/bin/bash
test2:x:1006:1006:Test 2:/home/test2:/bin/bash
grep test.: /etc/shadow
test1:!:18373:0:99999:7:::
su test1 -c id
uid=1005(test1) gid=1005(test1) groups=1005(test1)
su test2 -c id
su: Authentication failure
해결책은 비밀번호 필드 x
에 사용 하지 passwd
않거나 /etc/shadow
. (비밀번호 필드를 비워두면 /etc/passwd
사용자가 비밀번호 없이 로그인할 수 있습니다. 대신 을 사용하면 !
계정이 잠긴 것으로 표시됩니다.)
pwconv
누락된 항목이 있는 파일을 수정하려면 이 명령을 사용할 수 있어야 합니다 /etc/shadow
.