繁体   English   中英

如何以没有密码的其他用户身份运行脚本?

[英]How to run script as another user without password?

我有必须作为user2运行的script.sh。 但是,此脚本只能在我的应用程序的user1下运行。

我想运行以下命令:

su user2 -C script.sh

但无需密码即可运行。

我也希望这是非常严格的限制,因为在user1中只能在user2下运行script.sh,而不能在其他任何情况下运行。

我已经尝试过使用sudoers文件执行此操作,但经过数小时的尝试,它才变得无穷无尽。

如果有人可以提供一个明确的示例说明如何完成此操作(而不是像使用sudoers这样的通用方法),将不胜感激。

尝试运行:

su -c "Your command right here" -s /bin/sh username

假定您具有以该用户身份进行sudo的权限,这将以用户名运行命令。

调用visudo并添加以下内容:

user1 ALL=(user2) NOPASSWD: /home/user2/bin/test.sh

命令路径必须是绝对的 然后从user1 shell调用sudo -u user2 /home/user2/bin/test.sh 做完了

`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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM