От пользователя root, как я могу дать разрешения другому пользователю на выполнение файла /root/script.sh?
Идея состоит в том, чтобы запустить скрипт как sudo -u user1 /root/script.sh
su(1)
От пользователя root, как я могу дать разрешения другому пользователю на выполнение файла /root/script.sh?
Идея состоит в том, чтобы запустить скрипт как sudo -u user1 /root/script.sh
su(1)
Ответы:
Пользователь должен иметь
разрешение на выполнение для всего пути к каталогу ( /rootтолько здесь )
выполнить разрешение для файла
разрешение на чтение файла
Это может быть хорошей идеей, чтобы оставить /rootнетронутым и создать (или использовать) другой каталог для этой цели (например /usr/local/bin). Вы можете сделать user1единственного пользователя, которому разрешено выполнять скрипт, сделав его владельцем файла или оставить его в rootкачестве владельца и группы, установить простые права доступа ( chmod) 770и добавить их user1с помощью ACL ( setfacl).
Если ваш скрипт находится в корневом каталоге, то
$ 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команде.
%Означает группу пользователей. Если вы пропустите это, то только пользователю разрешено выполнять команду. Если вы хотите, чтобы группа пользователей выполняла его, оставьте все как есть.
sudoкомандой, которую вы написали?