Como configurar corretamente o arquivo sudoers, no debian wheezy?

10

Eu já vi muitos posts que dizem, é o suficiente para fazer

aptitude install sudo
su root
adduser USERNAME sudo

Mas isso apenas protege aptitude, em outras palavras:

  • aptitude install sendmailvai pedir a senha, você precisa estar sudorodandoaptitude

  • apt-get install sendmailnão pedirá senha, sem sudoprivilégios necessários

  • Se você editar arquivos protegidos, como arquivos etcnele, não solicitará senha, não serão sudonecessários privilégios

  • Você pode executar e interromper serviços como apache, ele não solicitará senha, nenhum sudoprivilégio necessário

Como consertar isto? Este é o meu arquivo sudoers:

 This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:$

# Host alias specification

# User alias specification

# Cmnd alias specification

Esta é a saída de sudo -l:

Matching Defaults entries for root on this host:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User root may run the following commands on this host:
    (ALL : ALL) ALL
    (ALL : ALL) ALL
Lynob
fonte
3
Depois su root, você está logado como rootusuário, para ter acesso total a tudo. Para voltar a ser um uso regular que precisa ser usado sudopara operações privilegiadas, efetue logout do shell executando como root.
depquid
Eu sou novo no Linux, mas o Debian wiki diz - nome de usuário adduser sudo wiki.debian.org/sudo
AntiCZ

Respostas:

16

Você não adicionou nenhuma regra sudo, portanto não pode usar o sudo para nada.

O comando adduser USERNAME sudoadiciona o usuário especificado ao grupo chamado sudo. Um grupo com esse nome deve existir; crie-o addgroup sudose não o fizer. Após adicionar o usuário ao grupo, o usuário deve efetuar logoff e logon novamente para que a associação ao grupo entre em vigor.

sudonão é um nome de grupo especial. É uma convenção permitir que os usuários do grupo chamado sudoexecutem comandos como root por meio do sudoutilitário. Isso requer a seguinte linha no sudoersarquivo:

%sudo ALL = (ALL) ALL

Execute visudopara editar o arquivo sudoers, nunca edite-o diretamente.

Não faço ideia por que você acredita que "isso apenas protege a aptidão". Não há nada de especial na aptidão. Depois de autorizar um usuário a executar comandos como root, ele pode executar sudo aptitude …ou sudo apt-get …ou sudo service …, ou sudoediteditar arquivos que requerem permissão de root para editar. Estar no arquivo sudoers não altera diretamente os privilégios do seu usuário, o que faz é que permite executar sudopara executar comandos como root. Os comandos são executados como raiz somente quando você os executa sudo. Alguns programas podem fazer isso automaticamente, especialmente programas da GUI em que a interface do usuário é executada sem privilégios especiais e apenas o back-end é executado como raiz, mas os comandos executados como raiz são sempre executados por sudo.

Gilles 'SO- parar de ser mau'
fonte
Ele correu sudo -lcomo raiz. Mesmo se houver definições úteis para os usuários, elas não teriam sido mostradas. Portanto, seu palpite "Você não adicionou nenhuma regra sudo" pode estar errado.
Hauke ​​Laging
@HaukeLaging Não entendi o seu comentário. "Você não adicionou nenhuma regra sudo" não é um palpite: o sudoersarquivo está em questão.
Gilles 'SO- stop be evil'
Eu estava quase deprimido, percebendo que estava muito focado na sudo -lsaída, mas felizmente ... Parece que o conteúdo da pergunta não pode ser o arquivo inteiro porque não é consistente com a saída. Pelo menos meusudo versão não afirma "O usuário root pode executar os seguintes comandos" com uma sudoersdefinição de comando sem (como a da pergunta).
Hauke ​​Laging
@HaukeLaging Você está certo, verifiquei com o chiado e de fato sudo -lapenas diz: “O usuário root não tem permissão para executar o sudo no darkstar.”. E o sudogrupo está no arquivo sudoers por padrão no wheezy. As entradas necessárias podem ter sido movidas para um arquivo em /etc/sudoers.d. De qualquer forma, o que quer que o arquivo sudoers contenha, ele não faria o que Fischer assume.
Gilles 'SO- stop being evil' em
4

O que pode ter acontecido é: sudo está armazenando em cache sua senha. Portanto, depois de concluir corretamente a implementação do sudo no seu sistema, você deverá digitar a senha do primeiro comando e, depois disso, ficar em cache por algum tempo. Se isso acontecer e você executar a sequência

sudo aptitude install sendmail
sudo apt-get install sendmail

Então você precisará fornecer uma senha no primeiro comando, mas não no segundo (pelo menos enquanto você ainda estiver dentro do tempo limite). Pode parecer que ele está protegendo apenas o primeiro comando, mas não o segundo. Sem mais informações (transcrições completas do shell), não há como saber ...

Josef
fonte
Sim. Um não exclui o outro. A resposta correta explica muito bem como configurar o sudo corretamente e, nesse sentido, responde à pergunta. Não explica por que, nas palavras da pergunta, "isso apenas protege a aptidão". Gilles escreve a si mesmo: "Eu não tenho ideia de por que você acredita que" isso apenas protege a aptidão "". Como eu disse, para realmente entender esse fenômeno, são necessárias mais informações. Eu acho que um voto negativo é um pouco duro, já que minha resposta está correta, aborda a questão original e preenche uma lacuna na resposta existente.
1911 Josef
Boa ideia, isso pode ser a fonte da confusão de Fischer.
Gilles 'SO- stop being evil' em
0

Se você seguir a resposta acima, estará seguindo o caminho certo. Pelo menos na minha Debian Jessie, fiz um link suave para / usr / bin do comando no caminho / sbin. Por exemplo: / sbin / ifup, coloquei um link suave (ln -s) em / usr / bin e posso usá-lo.

Outra coisa importante é colocar o NOPASSWD assim:

User_Alias NET = goviedo
Cmnd_Alias ETH = /sbin/ifup
NET ALL = NOPASSWD:ETH
Gonzalo Oviedo
fonte