特定のユーザーがアカウントのパスワードを知らなくても他のユーザーアカウントにsuできるようにしたいが、他のユーザーアカウント(つまりroot)へのアクセスは許可しない。
たとえば、トムのDBAにOracleユーザーへのsuを許可しますが、Tomcatユーザーまたはrootへの許可は許可しません。
これは/ etc/sudoersファイルで実行できると思います-可能ですか?もしそうなら、どうですか?
はい、可能です。
/ etc/sudoersでは、equalsの直後の項目は、コマンドの実行を許可されるユーザーです。
tom ALL=(Oracle) /bin/chown tom *
ユーザー(tom)は次のように入力できますSudo -u Oracle/bin/chown tom/home/Oracle/oraclefile
/ etc/sudoersに次のようなものを追加します
tom ALL=(Oracle) ALL
次に、ユーザーtomは、Sudoを使用して、ユーザーuで-uオプションを指定し、tomを許可せずに物事を実行できる必要があります。
つまりユーザーOracleとしてシェルを取得する(まあ、あなたのSudoが-iオプションを持つほど新しいことを考えると)。
Sudo -u Oracle -i
問題の機能のみを提供するには、以下を/ etc/sudoersに追加します。
tom ALL=(Oracle) /bin/bash
次に、トムは次のことができます。
Sudo -u Oracle bash -i
たとえば、トムのDBAにOracleユーザーへのsuを許可しますが、Tomcatユーザーまたはrootへの許可は許可しません。
私は最近システムに対してこれを行う必要があり、構文su <user>
も許可する、何年も前に使用した代替セットアップに関するメモを見つけるのに苦労しました。私の状況では、複数のユーザーが特定のユーザーにsu
できるようにする必要がありました。
他のユーザーがパスワードなしでsu
できるaddgroup <groupName>
を使用してグループを作成します。次に、パスワードなしでそのユーザーにsu
できるようにする各ユーザーにそのグループを追加します:usermod -a -G <groupName> <userName>
(またはusermod -a -G Oracle tom
)。グループの変更は、次回ログインするまで有効にならない場合があります。
注:この場合、adduser Oracle
を使用してOracleユーザーを作成したときにOracle
グループが作成されていたため、グループはすでに存在しています。
ここで/etc/pam.d/su
を編集し、以下の下に移動します。
# This allows root to su without passwords (normal operation)
auth sufficient pam_rootok.so
..authルール行を追加すると、セクションは次のようになります。
# This allows root to su without passwords (normal operation)
auth sufficient pam_rootok.so
auth [success=ignore default=1] pam_succeed_if.so user = <groupName>
auth sufficient pam_succeed_if.so use_uid user ingroup <groupName>
この場合、<groupName>
をOracle
に置き換えます。これにより、<groupName>
からsu <groupName>
の一部であるすべてのユーザーが許可されます
これでtom
がsu Oracle
できるようになり、他のユーザーに同じアクセス権を与える必要がある場合は、Oracle
グループに追加します。
同様の質問 ここ