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

루트로 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 회 반복했다.



답변

귀하의 의견에 따르면 /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. 휠 그룹?

이는 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 -성공적으로 실행할 수 있는지 확인하려고합니다 .


답변

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

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를 시도하십시오. 작동해야합니다.