特定のコマンドを実行するときにルートがパスワードを入力する必要があるのはなぜですか?

特定のコマンドを実行するときにルートがパスワードを入力する必要があるのはなぜですか?

特定のRHEL5システムでは、rootがコマンドpasswd someuserまたは他の特権コマンドを実行するときに確認するためにrootパスワードが必要であり、パスワードなしでコマンドを実行することはできません。

例:

# 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/sudoersrootユーザーは以下のようにファイルに存在します。

    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を疑わないので、これが問題を解決するかどうかは正直にはわかりません。

関連情報