¿Cuáles son los beneficios de sudo sobre su?

19

¿Cuál es el beneficio real que Ubuntu (o los derivados de Debian) logran al deshabilitar al usuario root?

En todas partes que leo, dice evitar daños involuntarios para usuarios inexpertos. Quiero saber exactamente qué, ya que sudopuedo ejecutar todos los comandos (que sé / uso).

Entonces, ¿en qué caso la raíz puede causar daño mientras sudoque no?

PD: Sé cómo sudofunciona.

Nosotros somos
fuente

Respuestas:

31

Entonces, ¿en qué caso la raíz puede causar daño mientras que sudo no?

Como generalmente debe invocar sudocada vez que desea hacer algo que requiere privilegios, el razonamiento es que "pensará antes de saltar", es decir, no solo pegará sudo frente a algo sin pensar por un segundo cuál es el comando que está ejecutando va a hacer

Por suotro lado, una vez que estás dentro, estás dentro. Tienes carta blanca (una licencia abierta) para hacer cualquier cosa, y el razonamiento es que podrías olvidar por un momento que tienes esos privilegios y si no tiene suerte, ejecute algo que afecte / dañe gravemente su sistema; si no tuviera los privilegios de su, el comando no habría hecho nada grave.

ish
fuente
8
La lógica de "pensar antes de saltar" es tan ingenua como pensar que los usuarios se detendrán a pensar cuando se muestre un cuadro de diálogo que dice "¿Realmente desea instalar TrashTheComputer.Virus: Sí / no?" reducirá las tasas de infección de malware.
Dan Neely
99
@DanNeely - No lo creo. Escribo muchos comandos, y la mayoría de ellos no requieren sudo, por lo que no los uso. Cuando lo uso, me da un momento de pausa. Sí, estoy hablando como programador, no como usuario promedio, pero de nuevo, los usuarios promedio no usan la línea de comando.
Nathan Long
2
@NathanLong no es del todo cierto con Linux, la razón por la que existe esta pregunta muestra que un "usuario promedio" no entiende por qué usar sudomás su. Con demasiada frecuencia, la gente dice "usa sudo porque es más seguro que su", lo cual es ingenuo pensar ya que no es más seguro. Olvidar que usaste no sues excusa, eso es solo incompetencia si ejecutas un comando como root accidentalmente.
ceniza
1
@ash Sigo diciendo que un usuario promedio no estaría preguntando sobre las implicaciones de seguridad comparativas de dos métodos para aumentar los privilegios del usuario. De hecho, OP tiene preguntas sobre StackOverflow. Pero OP aparte, recordar lo que hiciste hace 15 segundos es más fácil que recordar lo que hiciste ayer, y fácilmente podrías tener una sesión terminal que abarque días. Entonces, sí, no debes olvidar cuándo lo usas su, pero personalmente prefiero no instalar bombas que asumir que recordaré desarmarlas.
Nathan Long
16

En mi opinión, las principales ventajas de sudo sobre su son que sudo tiene un registro superior de los comandos que se ejecutaron y sudo ofrece un control más preciso sobre lo que los usuarios pueden hacer.

su es all o none, pero sudo se puede configurar para permitir el acceso a algunos, pero no a todos los comandos.

Vea https://help.ubuntu.com/community/RootSudo para una discusión más completa, incluyendo ventajas y desventajas.

Pantera
fuente
11

su -

Cuando inicie sesión como root , cualquier tarea que inicie, acción que active o evento aleatorio causado por visitar un determinado sitio web, etc. se ejecutará como superusuario .

sudo

Cuando invocas sudo , mientras ejecutas un comando, solo ese comando se ejecutará como superusuario .

Se le pedirá su contraseña antes de ejecutar el comando. Por lo tanto, también se requiere la interacción del usuario por su parte .

Los intentos de invocar sudo también se pueden registrar .

david6
fuente
2
De hecho, solicita la contraseña del usuario actual, lo que facilita la administración de la contraseña de root. Si se elimina una cuenta del sistema, no es necesario restablecer la contraseña de root. Aún mejor, la cuenta raíz ni siquiera requiere una contraseña, por lo que la cuenta raíz no puede verse comprometida por la fuerza bruta.
jippie
@jippie indica que las buenas prácticas generales eliminan / bloquean / invalidan la contraseña de root y solo permiten el acceso a través de sudo su. mientras que el guión -es un indicador aceptado por suy trata su shell como si hubiera iniciado sesión como usuario (ejecuta un conjunto diferente de archivos de entorno, es decir .bashrc / .profile)
ceniza
3

Se trata de la gestión de usuario / contraseña para administradores de sistemas.

Si tiene varios usuarios, todos deberían tener cuentas separadas y deberían poder rastrearse utilizando esas cuentas. Esto significa que las personas no pueden ocultar su identidad. Además, si necesita revocar los permisos de un usuario específico, no tiene que restablecer la contraseña de root. Darle a cada persona en un entorno con más de 2 administradores la contraseña de root hace que sea una pesadilla cuando una persona abandona. No solo debes cambiarlo, sino comunicarlo, etc. Todo esto también tiene que suceder cuando uno de ellos tiene un portátil robado o cosas así. Una cuenta con una contraseña por persona simplifica la administración. Es similar a la filosofía detrás de por qué cada servicio debe tener su propia cuenta. Si una cuenta se ve comprometida, no tiene que volver a configurar otra docena de servicios (como tareas de respaldo) para usar una cuenta diferente.

También me parece conveniente no tener otra contraseña para seguir, perder y haber comprometido. En RHEL, desactivo específicamente la cuenta raíz después de configurar sudo para no tener que rastrearla. De vez en cuando, un usuario borra el archivo sudo, pero eso se puede solucionar en modo de usuario único. (Naturalmente, generalmente es una máquina de producción).

NOTA: 'sudo bash' le permitirá omitir escribir sudo para cada comando ...

flickerfly
fuente
Yo siempre sudo mc: D
Rony
La única respuesta aquí digna de ser votada, responde claramente la pregunta sin desambiguarla ni engañar a las personas en un sentido falso de la información.
ceniza
@flickerfly, creo que en "restablecer la contraseña de root para ese mismo usuario" se debe eliminar "para ese mismo usuario", será más preciso de esa manera.
Richlv
@Richlv, tienes razón. Hice la edición que sugeriste. No estoy seguro de lo que pretendía allí.
flickerfly
2

Creo que primero, debemos analizar qué son realmente su y sudo

su - significa usuario sustituto. Utiliza esto para cambiar a un shell como otro usuario usando la contraseña de ese usuario. De uso general con la raíz. No requiere una contraseña cuando se ejecuta como root.

sudo : permite a un usuario permitido ejecutar un comando especificado como otro usuario. También comúnmente usado con root. Sin embargo, esto le permite administrar específicamente qué comandos se pueden ejecutar como otro uso. (Por ejemplo, podría darle a un usuario la capacidad de ejecutar un script init.d pero nada más).

Tenga en cuenta que siempre puede ejecutar sudo suo sudo -iy eso le dará un shell raíz. Sin embargo, ninguna contraseña de root significa no iniciar sesión directamente como root ... lo que significa que nadie puede entrar en ese usuario.

EDITAR: así que tal vez esta respuesta que estás buscando es: no tener una contraseña de root te obliga a usar sudo, lo que a su vez naturalmente te alinea con la sudofilosofía que sugiere que impongas un mayor control sobre las acciones que se ejecutan como root.

usuario606723
fuente
Lo escribí yo mismo ...
user606723
2

Además, hay consideraciones de registro a considerar entre sudo y su. Ser su simplemente hace todo como root sin otra entrada que una línea en el registro de autenticación que dice que se convirtió en root.

Sudo, por otro lado, siempre se registra como su ID de usuario con Priveleesw escalado.

kd1s
fuente
0

Por lo general, iniciar sesión como su es más fácil cuando se realizan tareas administrativas. Sin embargo, hay al menos una excepción: cuando la propiedad del archivo es importante. Si necesita que un usuario sea el propietario de un archivo, inicie sesión como ese usuario y use sudo para descargar o copiar archivos. Ejemplos simples son los archivos de marcadores y fondos de pantalla. Si un usuario no posee el archivo, fallará un marcador de "Restaurar" de Firefox "Desde archivo". Cuando configura un fondo de escritorio, es posible que no funcione a menos que sea el propietario del archivo. A veces solo puede establecer privilegios o habilitarlos como un archivo ejecutable, pero algunas configuraciones o programas fallan si no es el propietario de un archivo.

DotheMath45
fuente
¿Inicia sesión como root y usa Firefox para navegar por la web? Creo que esta es la razón para deshabilitar la cuenta raíz. Elimina la posibilidad de iniciar sesión como root para el uso diario.
adempewolff