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
是什么和做什么缺乏理解。
我正在尝试以 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
是什么和做什么缺乏理解。