Usuário não no arquivo sudoers. Este incidente será relatado

24

Eu preciso instalar um pacote. Para isso, preciso de acesso root. No entanto, o sistema diz que não estou no arquivo sudoers. Ao tentar editar um, ele reclama da mesma forma! Como devo me adicionar ao arquivo sudoers se não tenho o direito de editar um?

Eu instalei este sistema e apenas administrador. O que eu posso fazer?

Edit : Eu já tentei visudo. Isso exige que eu esteja em sudoers em primeiro lugar.

amarzaya@linux-debian-gnu:/$ sudo /usr/sbin/visudo 

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for amarzaya: 
amarzaya is not in the sudoers file.  This incident will be reported.
amarzaya@linux-debian-gnu:/$ 
Sergiy Belozorov
fonte
4
Bem, obviamente user not(is) the sudoers file. (Typo no título)
Hello71
8
Você está na lista impertinente agora - xkcd.com/838
Aaron Newton

Respostas:

18

Seria uma espécie de falha de segurança se você pudesse se adicionar /etc/sudoerssem ter acesso ao sudo ou root. Basicamente, qualquer um poderia se enraizar.

Basicamente, você precisa pedir aos administradores dessa máquina para adicionar você ou instalar o pacote para você, de acordo com as políticas do site.

Você também deve usar o visudo para editar o arquivo sudoers - ele verifica se a sintaxe está correta antes de gravar o arquivo. E você pode usar outros editores que não o vi com o visudo. Por padrão, ele usará o que você definiu $EDITORe, se não o definir, poderá fazer

# EDITOR=nano visudo

para usar o editor nano.

Hamish Downer
fonte
5
Eu sou o administrador, uma vez que esta é a minha máquina e eu instalei este sistema, mas não ajuda :(
Sergiy Belozorov
9
Se for o seu sistema, você deverá ter digitado uma senha para o usuário root ao instalar. Então faça o login como 'root' e faça o visudo.
quer
De fato. Minha culpa. Esqueci que digitei a senha durante a instalação naquela época.
Sergiy Belozorov 21/01
24

Entre como root e use-o /usr/sbin/visudopara editar o arquivo e adicionar seu nome de usuário. O vi / vim normal não poderá editar o arquivo.

A maneira mais fácil é simplesmente descer até ver a linha " root ALL=(ALL) ALL" e adicionar-se a ela com a mesma sintaxe ( yourusername ALL=(ALL) ALL). Ou, você pode ler a página de manual do sudoers se desejar conceder privilégios mais específicos.

Ricket
fonte
Ele exige que eu esteja na lista de sudoers em primeiro lugar para executar o visudo. Eu instalei este Debian, não há outro administrador.
Sergiy Belozorov 15/03/10
Se você está logado como root, não precisa executar sudo visudo; apenas corra /usr/sbin/visudo. Mas parece que você já descobriu isso, pelos comentários da outra resposta.
Ricket 15/03/10
não é suficiente adicionar o respectivo usuário ao grupo "sudo" ou "sudoers" (dependendo da distribuição)? Infelizmente no meu caso, não funcionou, mas eu poderia jurar que isso costumava funcionar ...?
Gregor
5

Apenas digitei o comando:

$ su

E pediu a senha "root". Digitado e boom ... Funcionou!

Esse problema foi meu erro. Por estar de volta às instalações na época, criei o nome de usuário e a senha.

Carlos Trisotto
fonte
Obrigado que foi realmente útil e salvou meu bacon! Mas estou curioso para saber por que simplesmente adicionar esse comando e a senha do root permitiria privilégios elevados ... parece derrotar o objetivo da mensagem "Usuário que não está no arquivo sudoers. Este incidente será relatado"
Sol
1

Talvez a maneira mais fácil, quando você for root, seja:

echo 'amarzaya ALL=(ALL) ALL' >> /etc/sudoers

fonte
7
Você deve usar o visudo para editar o arquivo sudoers, em vez de editá-lo diretamente ou fazer eco do texto nele. Isso garantirá que ele esteja sintaticamente correto e garantirá que você não fique fora do acesso ou concederá acesso inadequado a alguém.
pkaeding
1

Se o seu arquivo sudoers já contiver esse tipo de linha

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

Então, a maneira mais limpa de fazer as coisas é provavelmente conceder o admingrupo ao seu usuário. Por exemplo, para adicionar usuário oracle ao admin grupo :

usermod -aG admin oracle
Alain Pannetier
fonte
Era isso que eu estava procurando. Para mim, o mais limpo também, sem mexer no arquivo sudoers.
Webjunkie
1
O comando correto éusermod -g oracle admin
kvanberendonck 4/14
-1: a sintaxe é usermod -g $group $user. Você provavelmente está pensando na addusersintaxe, que é adduser $user $group.
Blacklight Shining
1
... na verdade, você provavelmente vai querer usermod -aG $group $user. -gdefine o grupo principal do usuário para o que você especificar e -Gsem -aremoverá o usuário dos grupos que não estão listados. -gtambém alterará a propriedade do grupo de todos os arquivos pertencentes ao grupo anterior no diretório inicial do usuário. Então, se você é como eu e você tem o seu conjunto de umask para 007...
Blacklight Brilhante
1
@BlacklightShining. Você está certo. A sintaxe errada foi proposta por um comentarista anterior e, como oraclemuitas vezes também é um grupo, há realmente espaço para confusão. Eu não deveria ter "corrigido".
Alain Pannetier
-1

Caso você ainda possa obter acesso root su, use este one-liner para adicionar-se a /etc/sudoers/:

su -c 'echo $USER ALL=(ALL)ALL >> /etc/sudoers'

Para ativar a alteração, efetue logout e logon novamente. Por exemplo, encerre sua sessão X ou efetue logout via shell enter exit.

Bengt
fonte
-1: veja o comentário de pkaeding .
Blacklight Shining
-1

Se você não pode usar o sudocomando, poderá usar o seguinte método:

  1. Pressione Ctrl+ Alt+F1
  2. Desconecte o usuário se o usuário não for root
  3. Entrar como root
  4. Use privilégios de root
  5. Sair ( exit) - Ctrl+ Alt+ F7para acessar a GUI
user3113604
fonte
-1: isso funciona apenas em alguns ambientes locais que realmente têm uma GUI.
Blacklight Shining
-1

Tudo que você precisa é adicionar <username>ao seu whellgrupo.

# usermod -aG whell username

Então entre com seu nome de usuário e aproveite :)

EFernandes
fonte
-3

Entre usando o seguinte primeiro:

$ su

Então vá em frente com:

$ sudo apt-get update

ou o que for normal

Alastair
fonte
1
você não precisa su- o sudo faz isso.
Simon Sheehan
Na verdade, eles não são a mesma coisa. sudo é 'faça como superusuário', mas você faz login com a senha do usuário. su é 'alternar usuário' e, por padrão (sem argumentos), ele tenta alternar para o usuário raiz; nesse caso, você precisa digitar a senha raiz. Mas você também está correto - o uso de sudo após su é redundante, pois você já seria o usuário root.
Aaron Newton
@ aaron.newton Na verdade, eu o leio como Switch User e DO; você pode escolher qualquer usuário para executar o comando como na -ubandeira. Ele é usado principalmente para o root, mas assim é su.
Blacklight Shining
@ aaron.newton Na verdade, eu o leio como Switch User e DO; você pode escolher qualquer usuário para executar o comando como na -ubandeira. Ele é usado principalmente para o root, mas assim é su.
Blacklight Shining