18 votos

¿Cuál es la diferencia entre sudo -i y sudo su -

¿Cuál es la diferencia entre los comandos sudo -i y sudo su - .

¿Son iguales?

30voto

Joel K Puntos 3367

Ellos pueden proporcionar funcionalmente cerca de la misma cosa, pero parece que 'sudo-i' es más ligero de peso y mantiene un poco de práctica espalda referencias en su entorno.

Usted puede ver el extra de los procesos mirando 'ps auxf' (f le da una vista del bosque)

sudo-i rendimientos de este proceso árbol

jkrauska  4480  0.0  0.0  76828  1656 ?        S    23:38   0:00  |   \_ sshd: jkrauska@pts/0
jkrauska  4482  0.0  0.0  21008  3816 pts/0    Ss   23:38   0:00  |       \_ -bash
root      4675  0.6  0.0  19512  2260 pts/0    S+   23:42   0:00  |           \_ -bash

sudo su - rendimientos de este proceso árbol

jkrauska  4480  0.0  0.0  76828  1656 ?        S    23:38   0:00  |   \_ sshd: jkrauska@pts/0
jkrauska  4482  0.0  0.0  21008  3816 pts/0    Ss   23:38   0:00  |       \_ -bash
root      4687  0.5  0.0  43256  1488 pts/0    S    23:42   0:00  |           \_ su -
root      4688  0.5  0.0  19508  2252 pts/0    S+   23:42   0:00  |               \_ -su

Tenga en cuenta que a partir de la misma bash pid de proceso, 4482, pero que su - parece generar otro paso.)

Su primer 'sudo' ya está elevando su nivel de acceso a la root. Ejecute el comando su, sin especificar un nombre de usuario dentro de sudo cambios el usuario actual a root de dos veces.

Otra forma de investigar este es ejecutar dos comandos con strace-f.

strace -f -o sudoi sudo -i

vs

strace -f -o sudosu sudo su -

Si usted diff esos dos straces, vamos a ver más exeve se ejecuta para sudo su -.

Una cosa más.

sudo-i mantiene el extra conjunto de variables de entorno de SUDO.

SUDO_USER=jkrauska
SUDO_UID=1000
SUDO_COMMAND=/bin/bash
SUDO_GID=1000

sudo su - clobbers esas variables.

1voto

Termiux Puntos 35

Tiro respuesta: no, ellos no son el mismo.

Respuesta larga: sudo y su - son programas diferentes que realizar la misma tarea, que es elevar a los privilegios de root.

su solía ser la forma de facto de ser root en sistemas Linux. Sin embargo, siempre hubo la necesidad de separar los privilegios y dejar algo de auditoría info detrás. También cuando usted hace su - todo lo que tienes que hacer es hacer como root y es peligroso tener esa cantidad de energía. Aquí es donde sudo vino al rescate.

sudo tiene algunas características que la ub no. El elemento clave en el sudo es su capacidad para ejecutar "uno" comando como root y luego dejar caer privilegios de usuario normal. Ejemplo: Eliminar un archivo propiedad de root.

sudo rm /root/someFile

Este comando borrará el archivo porque sudo elevará a root cada vez que utilice el comando sudo antes de que otro comando. El siguiente comando que se ejecutó se ejecute como un usuario normal (a menos que anexar el comando sudo en el principio). Esto permite realizar tareas administrativas y, a continuación, colocar los privilegios de inmediato ayuda a evitar condiciones peligrosas.

sudo también proporciona otros beneficios le gusta restringir el conjunto de programas que un usuario puede ejecutar, los registros de los comandos que se ejecutan bajo sudo y otras cosas. Para obtener más información sudo en una cáscara de nuez

Cuando usted hace su - o sudo-i hacer lo mismo. Que es ser root, pero tenga en cuenta que su y sudo son completamente diferentes y ofrecen diferentes herramientas como un sistema de administración. Personalmente yo NUNCA ejecutar su - y mi pam política prohíbe, permitiendo que nadie para ejecutarlo. En mis sistemas, siempre hay que usar sudo causa de los beneficios agregados.

Más info: el Uso y la habilitación de sudo

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: