Bash

使用 sudo su - 無密碼更改使用者

  • July 10, 2020

我希望我的伺服器上的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 - user42NOPASSWD 清除外殼並不起作用

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。

我相信這是你想要的結果。

引用自:https://serverfault.com/questions/1024721