sudo su 给其他用户 运行 脚本

sudo su to an other user to run script

我正在尝试以 USER1 身份登录并将用户切换到 USER2 并以 USER2

执行一些脚本(100 多个脚本,无法在 sudoer 文件中一一列出)

在 Sudoer 文件中我有

   USER1 ALL=(USER2) NOPASSWD: ALL

当我运行以下为USER1

  sudo su - USER2 -c "test.sh"

我明白了

Sorry, user USER1 is not allowed to execute '/bin/su - USER2 -c test.sh' as root

如果我运行

  sudo su - sassrv

我明白了

Sorry, user USER1 is not allowed to execute '/bin/su - USER2'

如果我将 Sudoer 文件更改为

         USER1 ALL=(ALL) NOPASSWD: /bin/su - USER2

它会让我切换用户,但我仍然得到

Sorry, user USER1 is not allowed to execute '/bin/su - USER2 -c test.sh' as root

我怎样才能做到这一点?

您想 运行 test.sh 作为 USER2 和 sudo,但您 运行 su 作为 root。

su 可能会反过来尝试 运行 test.sh 作为 USER2,但这超出了 sudo 的范围和知识范围。从 sudo 的角度来看,您唯一要做的就是尝试 运行 作为 root 执行命令。

相反,请 sudo 以 运行 test.sh 作为 USER2 直接询问:

sudo -u USER2 test.sh

PS:在任何情况下,sudo su 都是一种代码味道,表明对 sudo 是什么和做什么缺乏理解。