我有必须作为user2运行的script.sh。但是,此脚本只能在我的应用程序中的user1下运行。
我希望运行以下命令:
su user2 -C script.sh
但是不需要密码就可以运行。
我还希望这个限制非常严格,因为在user1中只能在user2下运行script.sh,而不能在其他系统中运行。
我试过用sudoers文件做这件事,但在尝试了几个小时后,我就一直困惑不已。
如果有人能提供一个明确的例子来说明如何做到这一点(而不是像use sudoers这样的通用东西),我们将不胜感激。
发布于 2012-09-21 00:51:57
尝试运行:
su -c "Your command right here" -s /bin/sh username
假设您有权限以该用户身份执行sudo,这将以用户名的身份运行该命令。
发布于 2019-04-18 01:53:09
`su -c "Your command right here" -s /bin/sh username`
上面的命令是正确的,但在Red Hat上,如果selinux强制执行该命令,则不允许cron以其他用户的身份执行脚本。示例;execl: couldn't exec /bin/sh execl: Permission denied
我必须安装setroubleshoot和setools,并运行以下命令来允许它:
yum install setroubleshoot setools
sealert -a /var/log/audit/audit.log
grep crond /var/log/audit/audit.log | audit2allow -M mypol
semodule -i mypol.p
https://stackoverflow.com/questions/6905697
复制相似问题