특정 명령을 실행할 때 루트가 비밀번호를 입력해야 하는 이유는 무엇입니까?

특정 명령을 실행할 때 루트가 비밀번호를 입력해야 하는 이유는 무엇입니까?

특정 RHEL5 시스템에서 루트가 passwd someuser명령이나 기타 권한 있는 명령을 실행할 때 확인을 위해 루트 비밀번호가 필요하며 비밀번호 없이는 명령을 실행할 수 없습니다.

예:

# id
uid=0(root) gid=0(root)  
groups=0(root),10(wheel)
# passwd someuser
Password:(need to enter root verification password to proceed)
New user password:
Retype new password:
  • /etc/sudoers루트 사용자는 아래와 같이 파일에 존재합니다 .

    root ALL=(ALL) ALL
    
  • , , , , , 등 /etc/pam.d/의 모든 기본 파일은 다른 컴퓨터와 동일하지만 다르게 동작합니다.loginpasswdpassword-authpassword-auth-acsystem-auth-acsystem-authsudosudo-l

  • SElinux가 비활성화되었습니다.

  • /etc/nsswitch.conf변경 사항이 없으며 다른 시스템과 일치합니다.

    passwd:         files ldap 
    group:          files ldap 
    shadow:         files ldap 
    hosts:          files dns
    networks:       files
    protocols:      files
    services:       files
    ethers:         files
    rpc:            files
    netgroup:       files
    sudoers:  files ldap
    
  • passwd 명령을 실행할 때 아래와 같이 로그 파일에 많은 정보가 표시되지 않습니다.

    /etc/log/secure- 비어 있음(불행히도 rsyslog를 건드릴 수 없음)

    /etc/log/auth.log

    sshd[xxxxx]:  Accepted keyboard-interactive/pam for root from 127.0.0.XX port XXXXX ssh2
    sshd[xxxxx]:  pam_unix(sshd:session): session opened for user root by (uid=0)
    
  • SSH 없이 콘솔에 직접 연결할 때도 마찬가지입니다.

비슷한 행동을 경험한 사람이 있나요?

아니면 문제의 원인을 찾는 데 도움이 될 수 있는 디버깅 플래그나 방법을 추천해 주실 수 있나요?

답변1

이는 아마도 pam 구성과 관련이 있을 것입니다. RHEL 5에서도 정확히 동일한지는 잘 모르겠지만 RHEL 6에서는 /etc/pam.d/system-auth다음 줄이 포함되어 있기 때문에 UID < 500인 사용자에 대해 기본적으로 계정 인증이 성공합니다.

account     sufficient    pam_succeed_if.so uid < 500 quiet

RHEL의 다른 인증 관련 도구와 마찬가지로 /usr/bin/passwdpam 및 /etc/pam.d.

/etc/pam.d/system-authrpm을 실행하거나 yum reinstall pam추출 하여 복원하는 것이 /etc/pam.d/system-auth아마도 가장 안전한 옵션일 것입니다. 기존 system-auth파일을 덮어쓸 수는 없지만 system-auth.rpmnew.

답변2

먼저, 도움을 주신 모든 분들께 감사드립니다.

새 SSH 키를 생성한 후 문제가 해결되었습니다.

# ssh-keygen -t rsa

Authorized_keys2와 id_rsa.pub 파일 사이에 차이점이 발견되어 새 키가 생성되었습니다. 콘솔 연결에서도 문제가 발생한다는 것을 알았기 때문에 더 이상 ssh를 의심하지 않기 때문에 이것이 문제를 해결하는지 솔직히 모르겠습니다.

관련 정보