以与root用户不同的用户身份运行脚本


11

从root用户,如何授予其他用户执行/root/script.sh文件的权限?

这个想法是像这样运行脚本 sudo -u user1 /root/script.sh


1
问题还不是很清楚:“您是root用户,想以user1身份运行脚本”还是“您是user1用户,想以root身份运行脚本”?如果是第一种情况,那么sudo您编写的命令有什么问题?
michas

su(1)

Answers:


11

我必须说我从不喜欢sudo(尤其是它的配置)。普通的su

su -c 'command' - user

从根目录执行,不会提示输入密码。


0

用户必须具有

  1. 整个目录路径的执行权限(/root仅此处)

  2. 执行文件权限

  3. 文件的读取权限

最好/root保持不变并为此创建(或使用)其他目录(例如/usr/local/bin)。user1通过将脚本root设为文件的所有者或保留为所有者和组,将简单访问权限(chmod)设置为,770并添加user1ACL(setfacl),可以使其成为唯一有权执行脚本的用户。


0

如果您的脚本位于根目录中,则

$ LC_ALL=C ls -ld /root
drwx------ 17 root root 4096 Mar  5 20:14 /root

user1 只能是root。

您的/etc/sudoers输入看起来像

Cmnd_Alias SCRIPT=/root/script.sh

# user who is allowed executing /root/script.sh
%user ALL = (ALL) SCRIPT

通常,您可以使用 visudo

然后,您也不需要把-u root你的sudo命令。

%装置的用户组。当您忽略它时,则仅允许用户执行命令。如果您希望一组用户执行它,请照原样离开。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.