👥 Как разрешить только определенные команды с помощью sudo на Linux |

👥 Как разрешить только определенные команды с помощью sudo на Linux

Мануал

В этом руководстве вы узнаете, как запускать только определенные команды с помощью sudo на Linux.

В нашем предыдущем руководстве рассказывалось, как добавить пользователя в группу sudo, чтобы они могли выполнять команды с повышенными привилегиями.

👥 Добавление, удаление и предоставление прав sudo пользователям Arch Linux

Таким образом, можно разрешить пользователю запускать только определенные команды с помощью sudo в вашей системе.

Это можно сделать, изменив файл /etc/sudoers или добавив пользовательский файл конфигурации sudoers в каталог /etc/sudoers.d.

Например, чтобы позволить пользователю с именем john перезапустить Network Manager от пользователя root на всех хостах, отредактируйте файл sudoers и добавьте строку, показанную ниже.

visudo

Чтобы редактировать файл sudoers, вы должны быть пользователем root или иметь права sudo.

sudo visudo

Затем добавьте строку, показанную ниже:

john ALL=(root) /bin/systemctl restart NetworkManager

Для выполнения определенных команд с sudo от имени любого целевого пользователя, например, чтобы разрешить пользователю john перезапускать только службу Apache с помощью sudo:

john ALL=(ALL) /bin/systemctl restart apache2

Обратите внимание, что при добавлении привилегий sudo для пользователя безопаснее поместить пользовательскую конфигурацию sudo в каталог /etc/sudoers.d:

echo "john ALL=(root) /bin/systemctl restart apache2" > /etc/sudoers.d/john

Чтобы разрешить конкретному пользователю запускать несколько определенных команд с помощью sudo:

john ALL=(ALL) /path/to/command1, /path/to/command2, /path/to/command3

Замените /path/to/command на полный путь к запускаемым командам и аргументы (если есть).

Вы можете найти полный путь к команде, используя команду which.

Например, чтобы найти полный путь к команде, command1:

which command1

Затем вы можете запустить эти команды, добавив к ним префикс sudo:

sudo systemctl restart NetworkManager
sudo systemctl restart command1

Для всех этих команд вам будет предложено ввести пароль для пользователя, от имени которого вы запускаете эти команды.

Хотите запускать некоторые команды sudo без запроса пароля?

Как запускать команды sudo без пароля

sudo имеет параметр под названием NOPASSWD, который можно использовать для указания команд, которые можно запускать как sudo без запроса пароля.

Например, чтобы позволить пользователю с именем john перезапустить Network Manager в системе Ubuntu от имени любого пользователя без запроса пароля:

john ALL=(ALL) NOPASSWD: /bin/systemctl restart NetworkManager

Чтобы перезапустить NetworkManager от имени любого целевого пользователя и группы, добавьте:

john ALL=(ALL:ALL) NOPASSWD: /bin/systemctl restart NetworkManager

Вы можете просто поместить эту строку в пользовательский файл sudoers следующим образом:

echo "john ALL=(ALL) NOPASSWD: /bin/systemctl restart NetworkManager" >> /etc/sudoers.d/john

Чтобы перезапустить Network Manager с помощью sudo;

sudo systemctl restart NetworkManager

Чтобы запускать все команды sudo без запроса пароля от имени любого пользователя, группы на всех хостах, введите:

username ALL=(ALL:ALL) NOPASSWD:ALL

 

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий