¿Qué significa "¿eres root?"

16

Esto es lo que sigo obteniendo:

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

¿Qué estoy haciendo mal?

Ascendermedia
fuente

Respuestas:

29

rootes la cuenta de superusuario en el sistema; (básicamente) tiene todos los privilegios. Muchos sistemas están configurados para que pueda usar el sudocomando frente a otro comando para ejecutar ese comando "como root", es decir, como si fuera el usuario root, con los mismos privilegios.

Por lo general, se necesitan privilegios de root para instalar paquetes del sistema, que es lo que apt-gethace. Entonces, no funciona, la primera vez porque no tienes sudodisponible; la segunda vez porque sudono apareció mágicamente solo porque lo ejecutaste dos veces; y la tercera (y quinta) veces porque apt-get(y aptitude) realmente requieren root privs para instalar paquetes como este.

Como puede ver en su primer mensaje de error, sudo no está instalado o no está en su ruta, y probablemente no esté configurado. En su su -clugar, puede sustituirlo y proporcionar la contraseña de root (la contraseña de la rootcuenta) cuando se le solicite.

Si no conoce esa contraseña, debe a) pedirle a la persona que lo haga que realice esta tarea por usted, si no es su sistema, o b) encontrar alguna forma de recuperarla.

mattdm
fuente
Esto es principalmente correcto, aunque mencionaría que sudono solo ejecuta comandos "como si fuera root", sino que los ejecuta como root. Si observa el proceso, verá que se ejecuta como root, no como su ID de usuario. Por cierto, en las máquinas que no están configuradas para permitir el inicio de sesión interactivo por root de forma predeterminada, solo puede ejecutar sudo bashpara obtener un shell de root. :)
reirab
@reirab Creo que eso sudo -ies preferible, ya que respeta su shell actual.
nuevo123456
2
@ new123456 sudo -i usará el shell predeterminado para root. sudo -s usará el valor de $ SHELL para el usuario ejecutor.
bgvaughan
@reirab Estás citando la parte en la que estoy dando una explicación de lo que significa "como root" desde el punto de vista de un usuario simplificado.
mattdm
5

Necesita privilegios de root para ejecutar actualizaciones del sistema a través de apt-get.

Puede cambiar a una cuenta raíz usando su root. Parece que no tienes el sudoprograma instalado.

111 ---
fuente
2
El OP no solo carece de sudoprivilegios, ni siquiera se ha sudoinstalado.
n.st
1
Realmente, OP debería rootear el tiempo suficiente para instalarlo y configurarlo sudo.
Kevin
1
@ n.st posiblemente incorrecto, puede que no esté en PATH.
o11c
2
@ o11c Yo diría que esas son las mismas personas que nunca encontrarían ese problema sin sudo porque siempre están conectadas como root.
Kevin
1
@ o11c Si bien es posible, eso no parece probable, especialmente desde entonces, sudoy apt-getambos están instalados /usr/binde manera predeterminada (al menos en Debian).
n.st
5

¿Qué significa "¿eres root?"

Para instalar paquetes en todo el sistema (lo que apt-gethace), necesita privilegios de root, ya que creará y cambiará los archivos del sistema ( rootes el nombre habitual para la cuenta de administrador * nix).

El mensaje «¿eres root?» Es un recordatorio suave de que "necesitas ser root" para poder ejecutarlo apt-get install. Esta es la razón más frecuente del problema que tuvo (se muestra arriba):

/ var / lib / dpkg / lock - abierto (13: permiso denegado)

.

¿Cómo convertirse en root?

su

La forma tradicional de "convertirse en root" es ejecutar su(y proporcionar la contraseña del usuario root). su (1) significa s uper u ser o s witch u ser.

Tenga en cuenta que se puede utilizar para convertirse en cualquier usuario, por lo que puede ejecutar su johnpara obtener un shell como John. Ejecutar susin nombre de usuario es una abreviatura de su root.

Para que esto funcione, la cuenta de usuario root debe estar habilitada y tener una contraseña establecida. Algunos sistemas están configurados (incluso de forma predeterminada), con la cuenta raíz deshabilitada, para evitar a alguien -eg. un atacante: inicie sesión con la cuenta de administrador. En esos casos, ofrecen otra forma de ejecutar comandos administrativos, como sudo.

sudo

sudo (1) es un programa que le permite ejecutar un comando como otro usuario (como arriba, generalmente hecho para root). Está configurado /etc/sudoersy permite un control más preciso, como permitir solo ejecutar un solo programa como root, a un usuario específico (que puede configurarse para requerir su propia contraseña nuevamente), y también proporciona funciones de registro (por ejemplo, ". John ejecutó el sistema de destrucción como root ").

Hay otras opciones para correr con mayores privilegios (como calife ) pero tienen un uso mucho menor.

Su registro anterior indica sudoque no está instalado en magic2tower.

Ángel
fuente
0

Ya han explicado qué es la raíz, cuando tiene un "comando no encontrado" probablemente se deba a que no ha instalado el programa que está intentando ejecutar o no tiene la ruta en sus variables env.

Intenta ejecutar el comando así:

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

En algunas distribuciones de Linux no se puede cambiar a root, por lo que cada comando se puede ejecutar con sudo. =)

Carlos Andres Caro Perez
fuente
1
claro, si tienes un mensaje como bash: sudo: command not foundla mejor idea es instalarlo sudo apt-get install sudo, y si te da el mismo error, sabrás qué es la recursión
pqnet
2
No puede instalar sudo usando sudo.
Para hacer el