Як користувач 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 може бути лише кореневим.
Ваш /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написаною вами командою?