su 명령을 사용하여 루트로 로그인 할 수 없지만 SSH를 사용하여 로그인 할 수 있습니다


17

루트로 su root또는 su(잘못된 비밀번호 오류가 발생 함)로 로그인 할 수 없지만 동일한 비밀번호 로 ssh root@localhost또는 ssh root@my_local_IP동일한 비밀번호로 로그인 할 수 있습니까?

CentOS 6.4를 사용하고 있습니다.


업데이트 1 :

cat /etc/pam.d/su

제공합니다 :

#%PAM-1.0
auth        sufficient  pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth       sufficient  pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
#auth       required    pam_wheel.so use_uid
auth        include     system-auth
account     sufficient  pam_succeed_if.so uid = 0 use_uid quiet
account     include     system-auth
password    include     system-auth
session     include     system-auth
session     optional    pam_xauth.so

업데이트 2 :

$ sudo grep su /var/log/secure | grep -v sudo

제공합니다 :

Feb 23 13:12:17 fallah su: pam_unix(su:auth): authentication failure;
logname=fallah uid=501 euid=501 tty=pts/0 ruser=fallah rhost=  user=root

약 20 회 반복했다.


1
파일을 지우십시오 /etc/securetty( cp /etc/securetty{,.old}; : > /etc/securetty). 그래도 문제가 해결되지 않으면의 콘텐츠를 제공하십시오 /etc/pam.d/su.
Patrick

2
확실히 ssh 192.168.1.218당신은 당신 자신으로 로그인하고 있습니까? 루트를 통해 로그인하려면 ssh일반적으로 ssh root@192.168.1.218또는이 필요합니다 ssh root@localhost.
Graeme

1
쉘 ( echo $$) 의 PID (12345)를 가져 와서 ssh루트 쉘 (SUID 바이너리 추적에 필요)을 열고 (예 :을 통해 ) strace해당 쉘을 시작한 strace -o su.strace -p 12345 -f다음 오류 메시지 전에 이상한 오류를 찾으십시오. 또는 이러한 종류의 출력에 익숙하지 않은 경우 오류 메시지 앞의 마지막 30 행을 질문에 복사하십시오.
Hauke ​​Laging

1
@HaukeLaging 그것은 말한다Process 11736 attached - interrupt to quit
Alireza Fallah

2
좋아요, 그것이 작동하지 않는 이유입니다. / bin / su는 루트가 아닌 일반 사용자가이를 사용할 때 / etc / shadow의 비밀번호 목록에 액세스 할 수 있도록 setuid 비트를 설정해야합니다. chmod 4755 /bin/su이 문제를 해결하려면 루트로 입력 하십시오.
Mark Plotnick

답변:


23

귀하의 의견에 따르면 /bin/su다음과 같은 모드 / 소유자가 있다고 말했습니다 .

-rwxrwxrwx. 1 root root 30092 Jun 22 2012 /bin/su

여기에는 두 가지 문제가 있습니다.

  • 항상 루트 권한으로 실행되도록 set-uid 비트를 켜야합니다. 그렇지 않으면 일반 (루트가 아닌) 사용자가이를 실행할 때 비밀번호 정보에 액세스 할 /etc/shadow수 없으며 원하는 새 사용자에게 userid.

  • 그것은을 주어야한다고 대다수가 생각 group하고 other쓰기 비트가 다른 사용자가 변경할 수 없습니다 그래서, 꺼져.

이 문제를 해결하려면 로그인으로 root- 당신이 말한 당신이 함께 할 수있는 ssh- 입력

chmod 4755 /bin/su

또는 대안으로

chmod u+s,g-w,o-w /bin/su

합니다 ( chmod를 표준 문서는 걸리는 인자의 종류에 대한 자세한 내용이수록.)이 운영 체제를 처음 설치했을 때의 방법에 모드 비트를 복원합니다. 이 파일을 나열하면 다음과 같아야합니다.

-rwsr-xr-x. 1 root root 30092 Jun 22 2012 /bin/su

@ G-Man이 지적했듯이 모드 777 인 파일은 신뢰할 수없는 사용자가 덮어 쓸 수 있으며,이 경우 배포 매체 나 백업에서 다시 설치해야 할 수 있습니다.


1
나는 보통 다음과 같이 사용합니다 : chmod 755 /bin/su, 여분의 4 는 무엇입니까?
Alireza Fallah

4첫 번째 위치는 설정-UID 권한을 나타냅니다. 권한 비트에 기호 이름을 사용하여 chmod를 사용하는 다른 방법을 추가하기 위해 답변을 편집했습니다. 잘하면 그것이 더 분명해질 것입니다.
Mark Plotnick

대단히 감사합니다. 지금 나는 실행 것을 알아 낸 chmod -R 777 /bin실수로, 내가 저주 한 이유의 : D
알리레자 Fallah

나는 또 다른 질문을했다 , 당신은 그것을 참조하시기 바랍니다, 아마도 당신은 대답을 알고있다.
Alireza Fallah

cyberciti.biz/tips/…rpm파일 권한을 복원 하는 방법을 설명 하지만 시도하지는 않았습니다.
Mark Plotnick

10

1. 휠 그룹?

이는 useid가 wheel그룹 에 없기 때문일 수 있습니다 . Red Hat 배포판에서는이 그룹에 속하지 않은 사용자가 su명령 을 실행할 수 없도록 명시 적으로 허용하지 않을 수 있습니다 .

여기에 무엇 suPAM 구성은 기본적으로 다음과 같습니다

$ more /etc/pam.d/su
#%PAM-1.0
auth        sufficient  pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth       sufficient  pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
#auth       required    pam_wheel.so use_uid
auth        include     system-auth
account     sufficient  pam_succeed_if.so uid = 0 use_uid quiet
account     include     system-auth
password    include     system-auth
session     include     system-auth
session     optional    pam_xauth.so

이 행은 그룹의 su사용자에게 명령에 대한 액세스를 제한 할 수 있습니다 wheel.

auth        required    pam_wheel.so use_uid

그 소리에서 이것이 가능하며 사용자 ID는 su명령 을 수행 할 수 없습니다 .

SSH는 다른 PAM 메커니즘을 거치므로 작동합니다. SSH에는 루트 로그인에 대한 액세스를 제한하는 자체 기능도 있습니다. 루트 로그인은 일반적으로 최소한 대부분의 Red Hat 배포판에서 기본적으로 허용됩니다 :

$ sudo grep PermitRoot /etc/ssh/sshd_config 
#PermitRootLogin yes
# the setting of "PermitRootLogin without-password".

위의 내용이 주석 처리되어 있지만 기본값이며 OpenSSH가 구성의 기본 설정임을 보여줍니다.

이 작업을 하시겠습니까?

시스템이 이와 같이 구성된 경우 wheel그룹에 사용자 이름을 추가 할 수 있습니다 .

$ useradd -G wheel saml

로그 아웃 한 후 다시 로그인 한 후 :

$ groups
saml wheel

참고 : 내 사용자 ID는 위의 "saml"입니다.

2. su에 대한 권한?

실행 파일이 루트 소유인지 확인하십시오.

$ type -a su
su is /usr/bin/su
su is /bin/su

$ ls -l /usr/bin/su /bin/su
-rwsr-xr-x. 1 root root 32064 Jan 13 06:31 /bin/su
-rwsr-xr-x. 1 root root 32064 Jan 13 06:31 /usr/bin/su

또한 실행 파일에 s비트가 활성화되어 있는지 확인하십시오 . 이렇게하면 setuid가 만들어 져서 실행될 때 자체 루트로 실행됩니다.

3. 통나무는 무엇을 말합니까?

su -명령 을 시도하면 시도 에 /var/log/secure대한 항목이 표시 됩니다.

$ sudo grep su /var/log/secure | grep -v sudo
Feb 23 23:31:26 greeneggs su: pam_unix(su-l:session): session opened for user root by saml(uid=0)
Feb 24 00:27:32 greeneggs su: pam_unix(su-l:session): session closed for user root
Feb 24 01:34:12 greeneggs su: pam_unix(su-l:session): session opened for user root by saml(uid=1000)
Feb 24 01:34:26 greeneggs su: pam_unix(su-l:session): session closed for user root

추가 정보를 얻으려면이 로그를 참조하십시오.

4. 비밀번호에 문제가 없습니까?

사용하여 로그인을 시도 할 su -때 잘못된 비밀번호를 입력하면 다음과 같은 정보가 표시됩니다.

$ su -
Password: 
su: Authentication failure
$

다른 계정을 만들고이 보조 계정을 su -성공적으로 실행할 수 있는지 확인하려고합니다 .


: 당신의 위대한 난 당신의 대답을 읽은 후 시도 무슨 대답에 의해 감사합니다 usermod -a -G wheel my_username, 그리고 그 결과 groupsIS fallah wheel. 그래서 결과 cat /etc/pam.d/su는 지금 내 질문에 있으며, 다시 su 명령으로 루트로 로그인 할 수 없습니다 !!!
Alireza Fallah

이것은의 마지막 줄입니다 /var/log/secure:Feb 24 10:19:45 fallah su: pam_unix(su:auth): authentication failure; logname=fallah uid=501 euid=501 tty=pts/2 ruser=fallah rhost= user=root
Alireza Fallah

이 라인에서 약 20 번 반복/var/log/secure
알리레자 Fallah

4 : 그러나 내가 시도 할 때 : su: incorrect password -그리고 비밀번호는 정확합니다. 왜냐하면 SSH에서 동일한 비밀번호로 로그인 할 수 있기 때문입니다
Alireza Fallah

나는 또한 같은 다른 계정으로 su alireza다시 로그인을 시도했는데 같은 문제가있다
Alireza Fallah

0

이와 같은 오류 메시지가 표시되는 경우

su: PAM adding faulty module: /lib64/security/pam_tally.so
su: PAM unable to dlopen(/lib64/security/pam_tally.so): /lib64/security/pam_tally.so: cannot open shared object file: No such file or directory

이 단계를 수행하십시오.

ln -s /lib64/security/pam_tally2.so /lib64/security/pam_tally.so

그런 다음 su를 시도하십시오. 작동해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.