Diferencia entre los comandos de privilegios sudo su, su, s, i, bin/bash de Linux – HyperHCI.com
Ya sabes, puedes obtener privilegios de superusuario en tu sistema Linux para ejecutar solo dos comandos pero seguro que no sabes de qué se trata. diferencia entre los comandos de superprivilegios de Linux su, su -, sudo su, sudo su-, sudo -s, sudo -i o sudo /bin/bash pronto.
Hoy explicaré qué comando debes usar para obtener el privilegio correcto en el momento adecuado para ejecutar tu tarea.
Súper privilegio de comandos de Linux
Expliquemos la diferencia entre los siguientes comandos de privilegios de Linux:
- su
- su –
- sudo
- sudo su
- sudo su –
- sudo-s
- sudo-i
- sudo/bin/bash
Un tipo de Shell de inicio de sesión de Linux
Antes de acceder al comando Privilege, debe comprender el tipo de shell de inicio de sesión en el sistema Linux.
- shell de inicio de sesión: Un shell de inicio de sesión le permite iniciar sesión en el sistema como un usuario específico; para ello se requiere un nombre de usuario y una contraseña. cuando golpea control+alternativo+F1 Para iniciar sesión en una terminal virtual, después de iniciar sesión correctamente, tendrá un shell de inicio de sesión.
- Shell no inicia sesión: Un shell que se ejecuta sin iniciar sesión; para esto se requiere un usuario que haya iniciado sesión actualmente. Cuando abres una terminal gráfica en gnome, es un shell, no un inicio de sesión.
- portada interactiva: Un shell (con o sin inicio de sesión) donde puede escribir o interrumpir comandos de forma interactiva. Por ejemplo, terminal gnome.
- shell no interactivo: (sub)shell que probablemente se ejecute mediante un proceso automatizado. No verá ni entrada ni salida.
1. Comando de privilegios de Linux
Privilegio de comando su de Linux abre «shell interactivo sin iniciar sesión«A lo que está acostumbrado suna bruja ywill (root o cualquier usuario estándar) pero no cambie el directorio de inicio del usuario actual. Vea el ejemplo a continuación:
He iniciado sesión como usuario1 en la terminal
user1@pc$ pwd
user1@pc$ /home/user1
ahora corre su comando para cambiar de usuario
user1@pc$ su user2 Password: user2@pc$pwd user2@pc$ /home/user1 --> User directory does not change because it opens an interactive non login shell
Nota: Si no mencionas un nombre de usuario después «su» entonces un sistema Linux asumirá que desea cambiar a la cuenta raíz y le solicitará una contraseña de raíz.
2. Comando de privilegios «Su -» de Linux
Comando de privilegio «su -» de Linux abre «shell de inicio de sesión interactivo«A lo que está acostumbrado suna bruja yser (root o cualquier usuario estándar) y cambie el directorio de inicio del usuario actual. Vea el ejemplo a continuación:
He iniciado sesión como usuario1 en la terminal
user1@pc$ pwd
user1@pc$ /home/user1
ahora corre Comando «su-«. para cambiar de usuario
user1@pc$ su - user2 Password: user2@pc$pwd user2@pc$ /home/user2 --> User directory changed because it opens an interactive login shell
Nota: Si no menciona el nombre de usuario después de «su -«, el sistema Linux asumirá que desea cambiar a la cuenta raíz y solicitará la contraseña de raíz.
3. Comando de privilegios de Linux sudo
sudo se utiliza para ejecutar cualquier comando con privilegios de root y solicita la contraseña del usuario que ha iniciado sesión actualmente (y también verifica si tiene permiso para ejecutar comandos como root, que se configura a través de /etc/sudoers
— de forma predeterminada, todas las cuentas de usuario que pertenecen a los grupos «root» o «sudo» pueden utilizar el «comando sudo»).
En el sistema Linux, la mayoría de los comandos necesitan el privilegio sudo para ejecutarlos. Un ejemplo
cualquier tarea relacionada con el ID de usuario, como agregar usuario, eliminar usuario en el sistema Linux, necesita privilegios sudo, etc. Un ejemplo
Quiero actualizar el sistema Linux como Ubuntu y ejecutar el siguiente comando sin privilegios sudo.
user1@pc$ apt-get update Reading package lists… Done E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied) W: Problem unlinking the file /var/cache/apt/pkgcache.bin - RemoveCaches (13: Permission denied) --> Permissioned denied
Resultado: «apt-get update» requiere el privilegio sudo para ejecutarse, por lo que aparece un mensaje de permiso denegado.
Permitir ejecutar el comando «apt-get update» con el comando privilegio sudo
user1@pc$ sudo apt-get update [sudo] password for user1: Get:1 http://security.ubuntu.com/ubuntu focal-security InRelease [109 kB] Get:2 http://in.archive.ubuntu.com/ubuntu focal InRelease [265 kB] Get:3 http://security.ubuntu.com/ubuntu focal-security/main amd64 DEP-11 Metadata [24.3 kB] Get:4 http://in.archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB] Fetched 3,633 kB in 10s (364 kB/s) Reading package lists… Done --> Command executed successfully.
Nota: sudo solicita la contraseña actual del usuario que inició sesión para ejecutar el comando con privilegios sudo, si el usuario es miembro del grupo sudo/archivo sudoers mencionado.
4. Comando de privilegios de Linux “Sudo su”.
Comando sudo su privilegio de Linux es parecido a «comando su” abrir «shell interactivo sin iniciar sesión«A lo que está acostumbrado suna bruja yser (root o cualquier usuario estándar) pero no cambia el directorio de inicio del usuario actual. Vea el ejemplo a continuación:
He iniciado sesión como usuario1 en la terminal
user1@pc$ pwd
user1@pc$ /home/user1
ahora corre sudo su comando para cambiar de usuario
user1@pc$ sudo su user2 Password: user2@pc$pwd user2@pc$ /home/user1 --> User directory does not change because it opens an interactive non login shell
5. Comando de privilegios “Sudo su -” de Linux
Comando de privilegios de Linux «sudo su -«. es parecido a «comando su-” abrir «shell de inicio de sesión interactivo«A lo que está acostumbrado suna bruja yser (root o cualquier usuario estándar) y cambie el directorio de inicio del usuario actual. Vea el ejemplo a continuación:
He iniciado sesión como usuario1 en la terminal
user1@pc$ pwd
user1@pc$ /home/user1
ahora corre Comando «sudo su -«. para cambiar de usuario
user1@pc$ sudo su - user2 Password: user2@pc$pwd user2@pc$ /home/user2 --> User directory changed because it opens an interactive login shell
Nota: Si no menciona el nombre de usuario después de “sudo su –”Luego se le cambiará al directorio raíz con privilegios de raíz.
6. Comando de privilegios de Linux «Sudo -s».
Comando «sudo -s». ejecute $shell /bin/bash/ con privilegios de root y le proporcionará el entorno de usuario actual, por lo que su ~/.bashrc
es respetado.
el -s
(caparazón) La opción ejecuta el shell especificado por la variable de entorno SHELL si está configurado y redirige al $shell /bin/bash para su ejecución. De lo contrario, se ejecuta un shell interactivo.
user1@pc$ pwd
user1@pc$ /home/user1
ahora corre Comando «sudo -s». para cambiar de usuario
user1@pc$ sudo -s Password: root@pc:/home/user1#pwd root@pc:/home/user1# /home/user1 --> User directory does not change but you will be now root user because it opens an interactive login shell.
7. Comando de privilegios de Linux «Sudo -i».
Comando de privilegios de Linux «sudo -i». es parecido a «sudo su –«comando de apertura»shell de inicio de sesión interactivo«A lo que está acostumbrado suna bruja yser (root o cualquier usuario estándar) y cambie el directorio de inicio del usuario actual a un directorio raíz que le proporcione el entorno raíz, es decir, su ~/.bashrc
se ignora. Vea el siguiente ejemplo:
He iniciado sesión como usuario1 en la terminal
user1@pc$ pwd
user1@pc$ /home/user1
ahora corre Comando «sudo -i». para cambiar de usuario
user1@pc$ sudo -i Password: root@pc$pwd root@pc$ /root --> User directory changed to root user because it opens an interactive login shell.
Se recomienda el uso de «sudo -i
"
instead of "sudo -s"
por dos razones:
- El recordatorio visual de que estás en una sesión ‘root’.
- Es mucho menos probable que el entorno raíz esté envenenado con malware, como un bucle no autorizado.
.bashrc
.
8. Comando de privilegios de Linux «Sudo / bin/bash».
sudo/bin/bash es parecido a «sudo-s«Esto significa que llamaste sudo
por comando /bin/bash
. /bin/bash
se inicia como yoshell interactivo sin inicio de sesión por lo que no se ejecutan todos los archivos de puntos, pero el propio bash lee .bashrc
del usuario llamante.
Tu entorno sigue siendo el mismo.. Tuyo el hogar no será el hogar raíz. Entonces eres root, pero en el entorno del usuario que llama.
Conclusión
Entendamos el resumen de los comandos de privilegios anteriores.
- su significa que le permite cambiar de usuario para que pueda iniciar sesión como root o usuario estándar sin cambiar el directorio de inicio.
- «su -” significa que le permite cambiar de usuario para que pueda iniciar sesión como root o como usuario estándar además de cambiar el directorio de inicio.
- sudo significa que le permite ejecutar comandos en su propia cuenta de usuario con privilegios de root sin cambiar el directorio de inicio.
- «sudo su» significa que le permite convertirse en otro usuario y le permite al usuario ejecutar un comando como superusuario u otro usuario, solo cambiando el usuario actual a root, sin cambiar el directorio de inicio
- «sudo su –«Significa que le permite convertirse en otro usuario y le permite al usuario ejecutar un comando como superusuario u otro usuario, cambiando solo el usuario actual a root, junto con el cambio en el directorio de inicio.
- «sudo-s» significa ejecutar un shell con privilegios de root.
- “sudo-yo«Significa crear un nuevo entorno como raíz y cambiar a un directorio raíz que inicie sesión en los archivos de recursos específicos como .perfil o .iniciar sesión Se leerá desde la portada.
- sudo/bin/bash es parecido a «sudo-s» para ejecutar un shell con privilegios de root.
Con suerte, de ahora en adelante no se confundirá con los comandos de privilegios de Linux anteriores.
gracias por no HyperHCI.com para aprender algo nuevo, algo diferente y potenciar tus conocimientos.