あるコンピュータでは、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
あなたは与えられます明らかに構成でsudoers
2つの特定のコマンドを実行する権限:
/usr/bin/su - serviceAccount
/bin/su - serviceAccount
試行中のコマンド(例sudo -u serviceAccount whoami
:)が承認されたコマンドのリストにないため、パラメータを追加してください。
sudoers
設定にアクセスして実行するコマンドを追加するには、システム管理者に依頼する必要がありますsudo
。
答え2
たぶんこれを試してみてください:
SSH-t[Eメール保護]"sudo -u serviceAccount whoami"