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:/$ 

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.


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.


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.


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

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

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.



-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

-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 :)


-3

Entre usando o seguinte primeiro:

$ su

Então vá em frente com:

$ sudo apt-get update

ou o que for normal


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.