sudo suでコマンドを実行する

sudo suでコマンドを実行する

あるコンピュータでは、tlousに別のユーザー(serviceAccount)でシェルを開く権限が与えられました。

実行:sudo su - serviceAccountこのserviceAccountユーザーとしてシェルを開くなどの望ましい効果があります。今まではそんなに良くなった。

大丈夫です。しかし、シェルを開かずにそのユーザーとしてコマンドを実行したいと思います。

コマンドが次のようになるとします。whoami

私は試した:

sudo -u serviceAccount whoami

申し訳ありません。ユーザーtlouはserviceAccountで '/usr/bin/whoami'を実行できません...

sudo su - serviceAccount -c whoami

申し訳ありません。 tlouユーザーは実行できません'/bin/su - serviceAccount -c whoami'...

そして他の変更。私は何を見逃していますか? onelinerでこれを行うことはできますか?その理由は、実際にこれをsshコマンドで実行したいからです。ssh -t [email protected] sudo su - serviceAccount -c whoami

sudo -lを使って20190412を更新してください。

sudo -l

Matching Defaults entries for tlous on this host:
    !visiblepw, always_set_home, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY
    LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin, !authenticate

User tlous may run the following commands on this host:
    (root) /usr/bin/su - serviceAccount, /bin/su - serviceAccount

答え1

あなたの出力によると、sudo -l次のようになります。

User tlous may run the following commands on this host:
    (root) /usr/bin/su - serviceAccount, /bin/su - serviceAccount

あなたは与えられます明らかに構成でsudoers2つの特定のコマンドを実行する権限:

  • /usr/bin/su - serviceAccount
  • /bin/su - serviceAccount

試行中のコマンド(例sudo -u serviceAccount whoami:)が承認されたコマンドのリストにないため、パラメータを追加してください。

sudoers設定にアクセスして実行するコマンドを追加するには、システム管理者に依頼する必要がありますsudo

答え2

たぶんこれを試してみてください:

SSH-t[Eメール保護]"sudo -u serviceAccount whoami"

関連情報