Esta regra sudo permitirá que um usuário atualize o sistema e nada mais?

Esta regra sudo permitirá que um usuário atualize o sistema e nada mais?

Quero criar uma regra sudo que permita ao usuário ricardoatualizar o sistema usando aptitude, mas evite que ele use o sudo para executar qualquer outro comando (ele é um usuário problemático). Há alguma armadilha nesta regra que estou perdendo?

ricardo  ALL=(root) /usr/bin/aptitude

Ricardo só usa aptitude, não apt-get. Além disso, não tenho o Ubuntu instalado em nenhum lugar no momento, então entendo que /usr/bin/aptitudepode não ser o arquivo exato a ser permitido.

Se houver armadilhas nesta regra, como posso melhorá-la?

Responder1

Este comando restringirá o uso do usuário aptitudepara qualquer coisa, exceto atualizar o cache do repositório e realizar uma atualização segura do sistema.

ricardo ALL=(root) /usr/bin/aptitude update, /usr/bin/aptitude safe-upgrade

Um comando semelhante permitirá ao usuário realizar uma atualização completa, mas nada mais:

ricardo ALL=(root) /usr/bin/aptitude update, /usr/bin/aptitude full-upgrade

Pordocumentação do aptitude (10.04), safe-upgrade:

Atualiza os pacotes instalados para sua versão mais recente. Os pacotes instalados não serão removidos a menos que não sejam utilizados

Em contraste, full-upgrade:

Atualiza os pacotes instalados para sua versão mais recente, removendo ou instalando pacotes conforme necessário. Este comando é menos conservador que o upgrade seguro e, portanto, tem maior probabilidade de executar ações indesejadas. No entanto, é capaz de atualizar pacotes que o upgrade seguro não pode atualizar.

Use seu bom senso para determinar qual usuário deve ter permissão para executar. Se não tiver certeza, use a primeira regra, que permite apenas arquivos safe-upgrade.

Observe que se você deseja permitir que um usuário instale pacotes (o que reduz bastante qualquer benefício para a segurança, mas hipoteticamente), você precisa incluir um *após o aptitudecomando, ou seja

ricardo ALL=(root) /usr/bin/aptitude update, /usr/bin/aptitude safe-upgrade, /usr/bin/aptitude install *

Caso contrário, você receberá uma mensagem de erro informando que o usuário ricardonão tem permissão para executar o comando /usr/bin/aptitude install <package_name>.

Responder2

Você pode usar sudo -lpara ver quais comandos um usuário tem permissão para executar. Por exemplo, para ver quais comandos Ricardo pode executar:

sudo -ll -U ricardo

para ver se ele consegue executar o aptitude,

sudo -ll -U ricardo /usr/bin/aptitude

isso imprimirá o nome do comando conforme ele é expandido pelo sudo ou sairá com o código 1 se o usuário não tiver permissão para usar o comando.

Isto deve funcionar em qualquer sistema recente baseado em Debian para você testar; a sintaxe não é específica do Ubuntu.

fonte:cara sudo

Responder3

Na verdade não consigo ver nadaerradocom aquela linha sudoers. Infelizmente, não mexi sudomuito nas definições de configuração, portanto, nesse caso, meu conselho pode não ser confiável. Felizmente, o que eupodeO que faço é fornecer uma linha que eu sei que é segura:

ricardo ALL=/usr/bin/aptitude

É garantido que esta linha apenas permitirá que Ricardo execute aptitudecomo root, desde que Ricardo não seja membro de um grupo habilitado para sudo, como sudoou admin.

Fonte:8 maneiras de ajustar e configurar o Sudo no Ubuntu - How-to Geek.

informação relacionada