Como eu permito que um usuário execute somente o comando apt-get update com o sudo? [duplicado]

6

Não consigo descobrir como permitir que um usuário (neste caso, test ) consiga executar apenas o comando apt-get update com o arquivo sudoers . Sempre que tento adicionar o usuário e testá-lo, ele ainda não permite que o usuário execute o comando.

Alguém por favor pode me ajudar? Eu tenho pesquisado isso durante todo o dia e ainda não consigo descobrir. Eu provavelmente estou digitando algo errado.

Estou usando o Ubuntu 14.04.

    
por Alex Lowe 22.04.2015 / 01:47

2 respostas

2

Olhando a resposta de Andre Herman Bezerra, o único problema com isso é apontado nos comentários que isso NÃO restringe o usuário a atualizar apenas (eles podem instalar / remover pacotes).

Se você quiser restringir um usuário a atualizar somente , é melhor fazer o seguinte.

Crie um grupo ou use o grupo %staff .

Neste exemplo, estou escolhendo usar o grupo de usuários da equipe.

Atualize o documento sudoers .

export editor="vi" && sudo visudo

Crie um Cmnd_Alias que definirá uma bash roteiro permitido.

Cmnd_Alias UPDATER_ONLY = /usr/local/bin/updater.sh

Você precisa definir como esse comando é permitido.

# 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

Finalmente, você precisa criar o shell.

Para evitar que alguém edite o arquivo, ele deve ser de propriedade de root e de somente leitura ou criado durante a execução de 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

Isso deve se parecer com o seguinte:

$ ls -la /usr/local/bin/updater.sh
-rwxr-xr-x 1 root root 60 Jan 22 08:50 /usr/local/bin/updater.sh*

Estamos quase terminando!

Você precisa se lembrar de permitir esse privilégio adicionando o usuário ao grupo de funcionários.

sudo usermod -aG staff the-user

Se alguém tentar instalar algo, isso é o que recebe:

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.
    
por ash 22.01.2016 / 10:48
7

Primeiro, edite o /etc/sudoers somente com visudo

Você pode definir a permissão para o usuário joe para o comando apt-get , adicionando apenas a seguinte linha:

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

Uma vez logado como joe , você pode verificar as permissões:

sudo -l

Edit: O usuário poderá usar o apt-get update, upgrade, install, etc; já que esses são apenas sinalizadores para o comando apt-get.

    
por Andre Herman Bezerra 22.04.2015 / 02:34