Показать статистику
0 голосов
от (2.7тыс. баллов)

Я добавил  этот alias:

alias shutdown2h='sudo shutdown -h +120'

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

Можно ли вместе с NOPASSWD добавить alias в файл sudoers? Я попробовал это с расположением команды, ~/.bash_aliases/shutdown2h которая дала мне синтаксическую ошибку. Или есть другой способ?

Большое спасибо!

203 просмотров 1 ответов

1 Ответ

0 голосов
от (26.4тыс. баллов)

Вы хотите убедиться, что ваш пользователь не может вносить изменения в то, что ему разрешено запускать. Например, пытаясь добавить сценарий, принадлежащий вашему пользователю ( ~/.bash_aliases/shutdown2h) для запуска от имени пользователя root sudo без пароля, вы разрешите выполнение любой произвольной команды. Просто отредактируйте этот файл и запустите его. Это было бы то же самое, что разрешить пользователю выполнять любую команду через sudoers. Например, пользователь отредактирует файл для чтения now, а -h +120 не немедленно выключит машину.

от (26.4тыс. баллов)
0

Вместо этого было бы лучше добавить в систему сценарий, принадлежащий пользователю root, возможно, в формате /usr/local/bin/. Например /usr/local/bin/shutdown2h, исполняемый всеми, но доступный для записи только пользователю root. Таким образом, вы гарантируете, что пользователь может запускать только определенный сценарий, и этот сценарий не может быть изменен им для запуска чего-то другого. Путь, по которому вы размещаете скрипт, должен быть в вашем файле $PATH, который  должен быть по умолчанию /usr/local/bin.

  1. Создать скрипт
sudo vim /usr/local/bin/shutdown2h

#!/bin/bash
shutdown -h +120
  1. Разрешить выполнение скрипта
sudo chmod +x /usr/local/bin/shutdown2h
  1. Разрешить ПОЛЬЗОВАТЕЛЮ запускать определенный скрипт
sudo visudo

# Add this entry
USER ALL=(ALL) NOPASSWD: /usr/local/bin/shutdown2h

Теперь ваш пользователь может работать sudo shutdown2h без запроса пароля и быть уверенным, что этот пользователь сможет работать только shutdown -h +120 без пароля.

Кроме того, при внесении записей sudoers обязательно указывайте полный путь к исполняемому файлу/сценарию и не используйте ярлыки, такие как ~/или $HOME.

...