Security

如何讓 sudo -u $user 使用使用者環境?

  • February 14, 2020

似乎在使用時sudo仍在sudo -u $user使用 root 環境。如何sudo使用使用者環境?作為特別說明,並非我將使用它的所有使用者都有登錄 shell。

嘗試sudo -i -u $user

gerald@book:~$ env |grep HOME
HOME=/home/gerald
gerald@book:~$ sudo -u ubuntu env |grep HOME
HOME=/home/gerald
gerald@book:~$ sudo -i -u ubuntu env |grep HOME
HOME=/home/ubuntu

man sudoers關於 Debian 提到了另一種可能性。不確定您想要哪種方式,但您的問題聽起來像是您想要從中env_reset選擇/etc/sudoers- 相反基本上是env_keep列表。為了設置正確HOME,您可以直接使用該-H選項,sudo或者再次sudoers使用該always_set_home選項。

或者,您可以使用env_file指定要傳遞的*確切環境。*但是,我認為最好查看 中的env_*選項man sudoers,因為/etc/sudoers它可以控制一切,這就是要轉向的重點。

這是我env_resetsudoers文件中使用的部分上下文:

Defaults        !lecture
Defaults        env_reset
Defaults        syslog=auth
Defaults        log_year

引用自:https://unix.stackexchange.com/questions/4342