it-swarm-es.tech

¿Cuál es la diferencia entre los comandos "su -s" y "Sudo -s"?

¿Cuál es la diferencia entre los dos comandos de superusuario, su -s y Sudo -s?

Ambos dan un Shell con acceso a la cuenta de superusuario.

23
Callum

En la práctica, ambos te harán el superusuario. Sin embargo, hacen cosas ligeramente diferentes, de maneras ligeramente diferentes.

Primero, su - lo cambia a un Shell de inicio de sesión, mientras que Sudo -s no. En la práctica, esto a menudo significa que las variables de entorno no se cambiarán a root 's para Sudo -s. Tenga en cuenta que puede ejecutar solo su para no obtener un Shell de inicio de sesión, o Sudo -i para obtener un Shell de inicio de sesión [no en todas las versiones].

En segundo lugar, su y su - cambie a un nuevo usuario solicitándole que se autentique como el nuevo usuario. Sudo -s y Sudo -i (y solo regular Sudo foo) te permite ejecutar un comando para el que tienes autorización previa [ver /etc/sudoers], posiblemente pidiéndole que confirme su actual ID.

Si quieres ser realmente lindo, también puedes ejecutar Sudo su -, que solicitará iniciar sesión como root (su -) ejecutado por el usuario root (la parte Sudo).

Si el usuario root está bloqueado (como en Ubuntu), no podrá iniciar sesión como root usando su. En este caso, deberá usar Sudo -s o Sudo -i

30
Mikeage
su -s

Cambiará a un usuario (en este caso root) e iniciará el Shell que especifique, o uno de los pocos otros métodos para determinar el Shell. Esto es útil si quiere usar zsh u otro Shell como root realmente rápido ... y por alguna razón no está usando Sudo.

Sudo -s

Simplemente ejecuta un Shell usando Sudo, que le daría un Shell raíz. También puedes pasarle un Shell.

su -s es más antiguo, mucho más antiguo que el comando Sudo -s. Supongo que el desarrollador está tratando de hacer que sea lo más fácil posible cambiar a usar Sudo.

12
Mark Turner

su es un comando para cambiar a otro usuario, ya sea para ejecutar un Shell o ejecutar un comando específico. Debe autenticarse como el otro usuario. Si desea su a root, necesita la contraseña de root.

Sudo es un comando para ejecutar otro comando (opcionalmente un Shell) como un usuario diferente. Debe autenticarse como su propio usuario. Un administrador especifica el permiso para usar Sudo (y las cosas específicas que puede hacer con él) en el archivo sudoers.

Si le da a alguien acceso a su (por ejemplo, dándole la contraseña de root), puede hacer cualquier cosa con él: ejecutar otros comandos, abrir un Shell, cambiar la contraseña, iniciar sesión de forma remota a través de ssh, etc. Básicamente, les está dando acceso a la otra cuenta, y 'su' es solo una cosa que pueden hacer con ella.

El sudo es mucho más fino. Puede otorgar privilegios a un usuario o a un grupo. Puede permitir que un usuario o grupo haga Sudo dentro de un período de tiempo determinado (por ejemplo, de lunes a viernes, de 9 a.m. a 5 p.m.). Puede especificar una lista específica de comandos que se les permite ejecutar (por ejemplo, solo/usr/local/bin/run_backup) o puede especificar un usuario específico al que se les permite ejecutar comandos como (por ejemplo, www, copia de seguridad, personal, etc. ).

Además de su flexibilidad, Sudo es una mejor solución en todos los casos, ya que no requiere acceso a nada que el usuario ya no tenga. Si le da acceso a Sudo a alguien, puede revocarlo eliminando su línea en el archivo sudoers o eliminándola del grupo de sudoers. Si elimina su cuenta, su acceso desaparecerá.

Si les das la contraseña de root, incluso suponiendo que no hagan nada desagradable con ella, entonces la sabrán para siempre. Si tiene varias personas que necesitan acceso de root para tareas administrativas, esto significa cambiar todas las contraseñas de root cada vez que alguien se va, o asumir que está bien que tengan acceso completo a sus sistemas después de que se vaya.

9
Dan Udey
  • su le pedirá la contraseña de usuario root.
  • Sudo le pedirá s contraseña (y debe tener permiso para acceder a Sudo para hacerlo).
5
badp

De Wikipedia :

su (abreviatura de usuario sustituto o cambio de usuario) es un comando Unix utilizado para ejecutar el Shell de otro usuario sin cerrar sesión.

Un comando relacionado llamado Sudo ejecuta un comando como otro usuario pero observa un conjunto de restricciones sobre qué usuarios pueden ejecutar qué comandos como qué otros usuarios (generalmente en un archivo de configuración llamado/etc/sudoers, mejor editable por el comando visudo). A diferencia de su, Sudo autentica a los usuarios con su propia contraseña en lugar de la del usuario objetivo (para permitir la delegación de comandos específicos a usuarios específicos en hosts específicos sin compartir contraseñas entre ellos y al mismo tiempo mitiga el riesgo de terminales desatendidos).

2
Yaakov Ellis

Una cosa que no se dice completamente es esta: cuál usted puede usar a menudo depende de qué distribución está usando y quién la ejecuta. Uno u otro (su o Sudo) probablemente no esté configurado para su uso completo de forma predeterminada. Entonces, por ejemplo, como algunas personas han mencionado, OS X y Ubuntu deshabilitan la cuenta raíz (su) por defecto. Igualmente, Debian no otorga a los usuarios regulares ningún privilegio predeterminado para Sudo. (En todos estos sistemas, puede cambiar estos valores predeterminados, pero solo si tiene algún tipo de privilegios administrativos para comenzar. Supongo que estamos hablando de una situación que no es del servidor y usted administra la máquina ya que estamos en SU que SF, pero por las dudas.)

Finalmente, si desea usar Sudo de una manera más precisa, debe mirar man sudoers para saber cómo editar el archivo / etc/sudoers. Sin embargo, debería nunca editarlo a mano. Use el programa visudo - le impedirá guardar sus ediciones a menos que sean al menos mínimamente sensatas. Es una gran protección contra errores simples que podrían bloquearlo de los privilegios de administrador de su propio sistema.

2
Telemachus

En sistemas donde la cuenta de superusuario está desactivada, como Mac OS X, su no funcionará; Sudo -s será.

Además, parece que no hay su -s disponible, al menos en mi máquina.

1
jtbandes

Esta introducción puede ayudarte. su es la abreviatura de su root, y usted mantiene sus derechos como el otro usuario indefinidamente. Más peligroso, pero también más conveniente si está haciendo muchos comandos de acceso a la raíz durante un período de tiempo.

1
Nikhil Chelliah

básicamente, su creará un nuevo Shell de inicio de sesión con otros privilegios de usuario (inicio de sesión) Sudo solo le permitirá temporalmente ejecutar el comando utilizando el usuario que especificó. En algunos UNIX como FreeBDS no hay opciones '-s'.

1
hendrasaputra