我正在尝试以 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
我怎样才能做到这一点?
最佳答案
您想以 USER2 身份使用 sudo
运行 test.sh
,但您以 root 身份运行 su
。
su
可能会依次尝试以 USER2 身份运行 test.sh
,但这超出了 sudo
的范围和知识范围。从 sudo
的角度来看,您唯一要做的就是尝试以 root 身份运行命令。
相反,要求 sudo
以 USER2 直接运行 test.sh
:
sudo -u USER2 test.sh
PS:sudo su
在任何上下文中都是一种代码味道,表明对 sudo
是什么和做什么缺乏理解。
关于linux - sudo su 给其他用户运行脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52209471/