ユーザーに切り替えることはできますが、スクリプトを実行できないのはなぜですか?

ユーザーに切り替えることはできますが、スクリプトを実行できないのはなぜですか?

コマンドを使用してユーザーに切り替えようとした場合sudo su - kshitiz。うまく機能し、パスワードを入力せずに切り替えることができます。

ただし、そのユーザーでスクリプトを実行しようとすると、パスワードの入力を求められます。

sudo -u kshitiz bash << EOF
> cat /home/ri/secret.txt
> EOF

なぜですか?

修正する:

User ksh may run the following commands on this host:
    (root) NOPASSWD: /bin/su - kshitiz

ベストアンサー1

識別されたsudoとおりにのみ許可されるように設定されているため、sudo su - kshitiz2番目のコマンドは失敗する可能性があります。

それにもかかわらず、同じユーザー切り替えは発生しません。

sudo su - kshitiz

su - kshitiz次に実行します。パスワードなしで実行rootできる場合、ユーザーを変更するときにパスワードを要求されないため、パスワードはまったく尋ねられません。sudorootsu -root

sudo -u kshitiz

パスワードを要求しないようにするには、直接sudoトグルを要求するために独自の設定が必要です。kshitiz

ユーザーが何でも実行できるように許可されている場合

sudo su - kshitiz -c bash ...

動作します。sudo許可するように設定することもできます。

sudo -u kshitiz ...

パスワードなし。

おすすめ記事