На этот вопрос уже есть ответ:
Я не могу понять, как разрешить пользователю (в данном случае test
) запускать только команду apt-get update
с sudoers
файл. Когда я когда-либо пытаюсь добавить пользователя, а затем тестировать его, он по-прежнему не позволяет пользователю выполнить команду.
Кто-нибудь может мне помочь? Я исследовал это весь день и до сих пор не могу понять. Я, наверное, что-то неправильно набираю.
Я использую Ubuntu 14.04.
Смотря на ответ Andre Herman Bezerra, на единственную проблему с этим указывают в комментариях, которые это НЕ ограничивает пользователя для обновления только (они могут установить/удалить пакеты).
Если Вы хотите ограничить пользователя, чтобы смочь обновить, только Вы - более обеспеченное выполнение следующего.
Создайте группу или используйте %staff
группа.
В этом примере я принимаю решение использовать группу пользователей штата.
Обновите sudoers
документ.
export editor="vi" && sudo visudo
Создайте a Cmnd_Alias
который определит разрешенный сценарий удара.
Cmnd_Alias UPDATER_ONLY = /usr/local/bin/updater.sh
Необходимо определить, как эта команда разрешена.
# Require staff to enter password when updating.
%staff ALL= UPDATER_ONLY
# Or, password is not required, just run the updater.
%staff ALL= NOPASSWD: UPDATER_ONLY
Наконец, необходимо создать оболочку.
Для предотвращения любого редактирующего файл, это должно принадлежать корню и только для чтения, или создано при выполнении sudo.
$ sudo echo '#!/bin/bash' >> /usr/local/bin/updater.sh
$ sudo echo 'sudo apt-get update && sudo apt-get upgrade -y' >> /usr/local/bin/updater.sh
$ sudo chmod 0755 /usr/local/bin/updater.sh
Это должно быть похожим на следующее:
$ ls -la /usr/local/bin/updater.sh
-rwxr-xr-x 1 root root 60 Jan 22 08:50 /usr/local/bin/updater.sh*
Мы почти сделаны!
Необходимо не забыть разрешать это полномочие путем добавления пользователя к группе штата.
sudo usermod -aG staff the-user
Если кто-то пытается установить что-то, что это - то, что они получают:
test-me@comp0:~$ sudo apt-get install test
[sudo] password for test-me:
Sorry, user test-me is not allowed to execute '/usr/bin/apt-get install test' as root on comp0.
Во-первых, отредактируйте /etc/sudoers
только с visudo
, можно установить разрешение на пользователя joe
для apt-get
команда, только добавляющая следующую строку:
%joe your_hostname=(root):/usr/bin/apt-get
Когда-то вошел в систему как joe
, можно проверить полномочия:
sudo -l
Редактирование: пользователь сможет использовать склонный - получают обновление, обновление, установку, и т.д.; так как это - просто флаги для Кв. - получают команду.