нужно чтобы пользователь мог зайти на Linux в SSH или с консоли напрямую и выполнить какую-то команду, требующую прав root
ну не давать ему же пароль от root!
Можно включить его в группу admin, но и это лишнее количество передаваемых прав. Так он дел натворит! Можно дать ему доступ к sudo на конкретные команды или (и) переменные среды конкретного пользователя. Этому и посвящена эта запись.
Идея в том, что будет один пользователь и он сможет выполнять определенные команды от sudo не имея root прав. Но можно сделать это и нескольким пользователям.
[su_note note_color=”#fff666″]
Общий вид команд этого файла:
[пользователь] [хост]=([кем может стать]) [что может сделать]
#TVS
#%tvs-ssh-system-views TVS-Laptop = NOPASSWD: /home/tvs/scripting/test.sh # этот вариант с правами на выполнение скрипта группе не работает. Нужно указывать каждому пользователю.
[/su_note]
[su_box title=”запуск файла редактирования и делегирования прав sudo” style=”glass” radius=”4″]
sudo visudo
[/su_box]
[su_box title=”настройка делегирования прав sudo” style=”glass” radius=”4″]
[bash]
vova TVS-Laptop = NOPASSWD: /home/tvs/scripting/test.sh
tvs TVS-Laptop = NOPASSWD: /home/tvs/scripting/test.sh
[/bash]
[/su_box]
чтобы указанная в visudo команда работала нужно сделать
[bash]
sudo имя_файла.sh
[/bash]
[/su_box]
Также здесь, в настройках, указывается какие пользователи могут выполнять команды от sudo
[su_note note_color=”#66ff6e”]
# 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 дать разрешение выполнять любые команды
[/su_note]
[su_box title=”команды проверки конфигурации sudo” style=”glass” radius=”4″]
[su_note note_color=”#040404″ text_color=”#22ea3f”]
sudo -l
[/su_note]
[su_spoiler title=”пример результатов работы этой команды:” style=”fancy” icon=”arrow-circle-1″]
[su_note note_color=”#040404″ text_color=”#22ea3f”]
tvs@TVS-Laptop:~$ sudo -l
Matching Defaults entries for tvs on this host:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin
User tvs may run the following commands on this host:
(ALL : ALL) ALL
(root) NOPASSWD: /home/tvs/scripting/test.sh
tvs@TVS-comp:~$
[/su_note]
[/su_spoiler]
[su_note note_color=”#040404″ text_color=”#22ea3f”]
sudo -ll # показать полные данные по правам sudo для текущего пользователя
[/su_note]
[su_spoiler title=”пример результатов работы этой команды:” style=”fancy” icon=”arrow-circle-1″]
[su_note note_color=”#040404″ text_color=”#22ea3f”]
tvs@comp:~$ sudo -ll
Matching Defaults entries for tvs on this host:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin
User tvs may run the following commands on this host:
Sudoers entry:
RunAsUsers: ALL
RunAsGroups: ALL
Commands:
ALL
Sudoers entry:
RunAsUsers: root
Commands:
NOPASSWD: /home/tvs/scripting/test.sh
[/su_note]
[/su_spoiler]
[su_note note_color=”#040404″ text_color=”#22ea3f”]
sudo -lU user_name
[/su_note]
[su_spoiler title=”пример результатов работы этой команды:” style=”fancy” icon=”arrow-circle-1″]
[su_note note_color=”#040404″ text_color=”#22ea3f”]
tvs@comp:~$ sudo -lU vova
User vova is not allowed to run sudo on TVS-comp.
[/su_note]
[/su_spoiler]
[/su_box]
[su_spoiler title=”редактирование файла настроек sudo напрямую” style=”fancy” icon=”arrow-circle-1″]
nano /etc/sudoers
# /etc/sudoers файл настроек sudo.
команда visudo проверяет синтаксис этого файла и не дает его сохранить если в нем есть ошибки.
[/su_spoiler]
+ There are no comments
Add yours