Bash使用
使用 sudo su -
無密碼更改使用者
我希望我的伺服器上的
fox
使用者可以是/更改使用者並以user42
無密碼方式(fox
使用者沒有密碼,他們使用 SSH 密鑰登錄)::srv6:/etc# grep user42 /etc/sudoers fox ALL=(ALL:ALL) NOPASSWD: /bin/su user42 srv6:/etc#
如果他們這樣做,它會很好地工作
sudo su user42
:fox@srv6:~$ sudo su user42 user42@akd6:/home/fox$
但是,如果我嘗試使用
sudo su - user42
NOPASSWD 清除外殼並不起作用fox@srv6:~$ sudo su - akd [sudo] password for fox:
它不會起作用,因為
sudo su - user42
它沒有映射到您在規則中授予的內容。該規則不包含-
破折號,因此它不映射。你如何做這樣的事情:
fox ALL=(user42) NOPASSWD: ALL
授予 fox 以 user42 身份在沒有密碼的情況下做任何事情的權利,
然後在
sudo -ui user42
哪裡-i
-i, –login 將目標使用者的密碼數據庫條目指定的 shell 作為登錄 shell 執行。這意味著 shell 將讀取特定於登錄名的資源文件,例如 .profile 或 .login。
我相信這是你想要的結果。