делегирование прав sudo другому пользователю

нужно чтобы пользователь мог зайти на Linux в SSH или с консоли напрямую и выполнить какую-то команду, требующую прав root

ну не давать ему же пароль от root!

Можно включить его в группу admin, но и это лишнее количество передаваемых прав. Так он дел натворит! Можно дать ему доступ к sudo на конкретные команды или (и) переменные среды конкретного пользователя. Этому и посвящена эта запись.

Идея в том, что будет один пользователь и он сможет выполнять определенные команды от sudo не имея root прав. Но можно сделать это и нескольким пользователям.

Общий вид команд этого файла:

[пользователь] [хост]=([кем может стать]) [что может сделать]

#TVS
#%tvs-ssh-system-views TVS-Laptop = NOPASSWD: /home/tvs/scripting/test.sh  # этот вариант с правами на выполнение скрипта группе не работает. Нужно указывать каждому пользователю.

запуск файла редактирования и делегирования прав sudo

sudo visudo

настройка делегирования прав sudo

vova TVS-Laptop = NOPASSWD: /home/tvs/scripting/test.sh

tvs TVS-Laptop = NOPASSWD: /home/tvs/scripting/test.sh

чтобы указанная в visudo команда работала нужно сделать

1) chmod 771 имя_файла.sh
2) запускать имя файла.sh без source имя_файла.sh
т.е.
запуск скрипта от sudo
sudo имя_файла.sh

Также здесь, в настройках, указывается какие пользователи могут выполнять команды от sudo

# User privilege specification
root ALL=(ALL:ALL) ALL

Defaults env_reset #команда сбрасывает все переменные среды. Если нужен доступ к каким-то переменным среды, то их нужно указать здесь.

Defaults:%admin !env_reset # не сбрасывать переменные среды для группы admin
которая будет сохранять переменные окружения для всех пользователей группы admin, или:
Defaults:tvs env_keep=my_var1 #сохранить для пользователя tvs переменную var1
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL  #членам группы admin дать все права root

# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL  #членам группы sudo дать разрешение выполнять любые команды

команды проверки конфигурации sudo

sudo -l

пример результатов работы этой команды:

sudo -ll # показать полные данные по правам sudo для текущего пользователя

пример результатов работы этой команды:

sudo -lU user_name

пример результатов работы этой команды:
редактирование файла настроек sudo напрямую

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *