O que significa "você é root"?

16

Isto é o que eu continuo recebendo:

ascendermedia@magic2tower:~$ sudo apt-get install flashplugin-installer
bash: sudo: command not found
ascendermedia@magic2tower:~$ sudo apt-get install flashplugin-installer
bash: sudo: command not found
ascendermedia@magic2tower:~$ apt-get install flashplugin-installer
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
ascendermedia@magic2tower:~$ sudo aptitude install flashplugin-nonfree
bash: sudo: command not found
ascendermedia@magic2tower:~$ aptitude install flashplugin-nonfree
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
ascendermedia@magic2tower:~$ 

O que estou fazendo de errado?

Ascendermedia
fonte

Respostas:

29

rooté a conta de superusuário no sistema - (basicamente) tem todos os privilégios. Muitos sistemas estão configurados para que você possa usar o sudocomando na frente de outro comando para executar esse comando "como root" - ou seja, como se você fosse o usuário root, com os mesmos privilégios.

Geralmente, você precisa de privilégios de root para instalar pacotes do sistema, e é o que apt-getfaz. Portanto, não funciona, pela primeira vez, porque você não tem sudodisponível; a segunda vez porque sudonão apareceu magicamente apenas porque você o executou duas vezes; e a terceira (e quinta) vezes porque apt-get(e aptitude) realmente requerem privilégios de root para instalar pacotes como este.

Como você vê na sua primeira mensagem de erro, o sudo não está instalado ou não está no seu caminho e provavelmente não está configurado. Você pode substituir su -ce fornecer a senha root (a senha da rootconta) quando solicitado.

Se você não souber essa senha, precisará: a) perguntar à pessoa que executa essa tarefa por você, se não for o seu sistema; ou b) encontrar alguma maneira de recuperá-la.

mattdm
fonte
Isso está correto, embora eu mencione que sudonão apenas executa comandos "como se você fosse root", mas na verdade os executa como root. Se você observar o processo, verá que ele está sendo executado como root, não como seu ID de usuário. Aliás, em máquinas que não estão configuradas para permitir o logon interativo por root, por padrão, você pode simplesmente executar sudo bashpara obter um shell raiz. :)
reirab
@reirab Acho que sudo -ié o preferido, pois respeita o seu shell atual.
new123456
2
@ new123456 sudo -i usará o shell padrão como root. sudo -s usará o valor de $ SHELL para o usuário em execução.
bgvaughan
@reirab Você está citando a parte em que estou explicando o que "como raiz" significa do ponto de vista simplificado do usuário.
mattdm
5

Você precisa de privilégios de root para executar atualizações do sistema via apt-get.

Você pode mudar para uma conta root usando su root. Parece que você não possui o sudoprograma instalado.

111 ---
fonte
2
O OP não possui apenas sudoprivilégios, ele nem sequer o sudoinstalou.
n.st
11
Realmente, o OP deve su para fazer root apenas o tempo suficiente para instalar e configurar sudo.
Kevin
11
@ n.st possivelmente incorreta, pode não estar em PATH.
O11c 03/07/2015
2
@ o11c Eu diria que essas são as mesmas pessoas que nunca enfrentariam esse problema sem o sudo, porque estão sempre logadas como root.
Kevin
11
@ o11c Enquanto possível, que não parece provável, especialmente desde sudoe apt-getsão ambos instalado para/usr/bin por padrão (pelo menos no Debian).
n.st
5

O que significa "você é root"?

Para instalar pacotes em todo o sistema (o que apt-geté necessário), ele precisa de privilégios de root, pois você criará e alterará os arquivos do sistema ( rooté o nome usual da conta de administrador * nix).

A mensagem «você é root?» É um lembrete gentil de que você "precisa ser root" para executar apt-get install. Esse é o motivo mais frequentemente encontrado para o problema (mostrado acima):

/ var / lib / dpkg / lock - open (13: permissão negada)

.

Como se tornar root?

su

A maneira tradicional de "tornar-se root" é executar su(e fornecer a senha do usuário root). su (1) significa s uper u ser ou s witch u ser.

Observe que ele pode ser usado para se tornar qualquer usuário, para que você possa executar su johnum shell como john. A execução susem nome de usuário é uma abreviação de su root.

Para que isso funcione, a conta do usuário root deve estar ativada e ter uma senha definida. Alguns sistemas estão configurados (mesmo que por padrão), com a conta root desativada, para evitar alguém -eg. um invasor - faça login com a conta de administrador. Nesses casos, eles oferecem outra maneira de executar comandos administrativos, como o sudo.

sudo

sudo (1) é um programa que permite executar um comando como outro usuário (como acima, normalmente feito para root). Ele está configurado /etc/sudoerse permite um controle mais refinado, como apenas executar um único programa como root, para um usuário específico (que pode ser configurado para exigir sua própria senha novamente) e também fornece recursos de registro (por exemplo, " john executou o sistema de destruição como root ").

Existem outras opções para executar com privilégios aumentados (como calife ), mas eles têm um uso muito menor.

Seu log acima indica que sudonão está instalado no magic2tower.

Anjo
fonte
0

Eles já explicaram o que é o root, quando você tem um "comando não encontrado" provavelmente é porque você não instalou o programa que está tentando executar ou não possui o caminho em suas variáveis ​​env.

Tente executar o comando assim:

/usr/bin/sudo apt-get install flashplugin-installer

Em algumas distros do linux, você não pode mudar para root, portanto todos os comandos podem ser executados com o sudo. =)

Carlos Andres Caro Perez
fonte
11
yeh certeza se você tem uma mensagem como bash: sudo: command not founda melhor idéia é instalá-lo com sudo apt-get install sudo, e se lhe dá o mesmo erro que você vai aprender o que a recursividade é
pqnet
2
Você não pode instalar o sudo usando sudo.
To