Как разрешить пользователю запускать только команду apt-get update с sudo? [дубликат]

Я не могу понять, как разрешить пользователю (в данном случае test ) запускать только команду apt-get update с sudoers файл. Когда я когда-либо пытаюсь добавить пользователя, а затем тестировать его, он по-прежнему не позволяет пользователю выполнить команду.

Кто-нибудь может мне помочь? Я исследовал это весь день и до сих пор не могу понять. Я, наверное, что-то неправильно набираю.

Я использую Ubuntu 14.04.

7
задан 22 April 2015 в 07:33

2 ответа

Смотря на ответ 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.
2
ответ дан 22 April 2015 в 17:33

Во-первых, отредактируйте /etc/sudoers только с visudo

, можно установить разрешение на пользователя joe для apt-get команда, только добавляющая следующую строку:

%joe your_hostname=(root):/usr/bin/apt-get

Когда-то вошел в систему как joe, можно проверить полномочия:

sudo -l

Редактирование: пользователь сможет использовать склонный - получают обновление, обновление, установку, и т.д.; так как это - просто флаги для Кв. - получают команду.

8
ответ дан 22 April 2015 в 17:33

Другие вопросы по тегам:

Похожие вопросы: