¿Qué hay de malo en ser siempre root?

83

Tengo la sensación de que esta es una pregunta estúpida, pero es algo que me he preguntado por un tiempo.

Tengo un VPS y esta es mi primera gran empresa de Linux. Soy la única persona que tiene acceso a ella. Mi pregunta es, ¿qué tiene de malo iniciar sesión como root en lugar de crear una cuenta y darles acceso a sudo? Si un sudoer puede hacer todo lo que puede hacer root, ¿cuál es la diferencia? Si un pirata informático puede descifrar mi contraseña en mi cuenta estándar no root, entonces también podría ejecutar comandos sudo, entonces, ¿cómo importa un pirata informático que descifra mi cuenta root más o menos?

ryeguy
fuente
28
También comentaría que si no está familiarizado con "Unix Way", esta no es una pregunta estúpida. Debería obtener una bonificación por pensar en hacer la pregunta en primer lugar como nuevo administrador de Linux.
Bart Silverstrim
Y me gustaría comentar algunas de las respuestas. Particularmente los que dicen "puedes arruinar cosas siendo root". No creo que ese sea el punto ... "rm -rf /" hace lo mismo que "sudo rm -rf /". El punto radica en que cosas como "sudo rm" no funcionan, pero "sudo startMyApp en puerto bajo" funciona.
Zlatko
¿Qué hay de malo en nunca ser?
ostendali

Respuestas:

70

Si ha iniciado sesión como root, puede borrar fácilmente directorios o hacer algo que, en retrospectiva, es realmente tonto en el sistema con solo mover un dedo, mientras que, como usuario, normalmente tiene que poner algunos ciclos mentales adicionales en lo que estás escribiendo antes de hacer algo que es peligroso.

Además, cualquier programa que ejecute como root como privilegios de root, lo que significa que si alguien o algo lo obliga a ejecutar / compilar / navegar un sitio web que es peligroso y quiere dañar su sistema, como un troyano u otro malware, tiene acceso completo a su sistema y puede hacer lo que quiera, incluido el acceso a puertos TCP inferiores a 1024 (por lo que puede convertir su sistema en un remailer sin su conocimiento, por ejemplo).

Básicamente, estás pidiendo problemas que puede evitar iniciar sesión como tú mismo. He conocido a muchas personas que terminaron contentas de tener esa red de seguridad en un momento de descuido.

EDITAR: También existe el problema de que root sea el más conocido, por lo tanto, un objetivo fácil, para scripts y hacks. Los sistemas que deshabilitan la cuenta y en su lugar obligan a los usuarios a usar sudo significa que cualquier intento de descifrar la raíz de ssh o un exploit local en la cuenta se golpea la cabeza contra la pared. Tendrían que adivinar / descifrar una contraseña y nombre de usuario. Es la seguridad a través de la oscuridad hasta cierto punto, pero es difícil argumentar que no frustra la mayoría de los ataques de guiones para niños.

Bart Silverstrim
fuente
25
+1 - El uso de "sudo" hace que ejecutar programas como root sea un acto manifiesto No se trata de "detener a los piratas informáticos", se trata de adquirir el hábito de trabajar como un usuario no privilegiado y hacer que la invocación de los privilegios de root sea un acto intencional y manifiesto.
Evan Anderson el
2
Estoy empezando a preguntarme si Evan es realmente una IA.
Bart Silverstrim
11
Sudo también agrega una pista de auditoría. Como quién, qué y cuándo se registra cuando se ejecuta como sudo. Qué archivo de registro puede variar con la distribución, pero las distribuciones de RedHat tienden a usar / var / log / secure y Ubuntu usa /var/log/auth.log ... No estoy seguro de si esto es cierto para todas las distribuciones basadas en Debian.
3dinfluence
3
+1: no se trata solo de derechos para crear cosas o hacer cosas, también se trata de derechos para destruir. Iniciar sesión como root (o el equivalente en cualquier otro sistema operativo para el caso) es como caminar con una pistola apagada. Es posible que nunca toques ese gatillo intencionalmente, pero ¿confiarías en ti mismo para hacerlo de todos modos?
Maximus Minimus
3
mh: / me se pone su sombrero de vaquero, quita el seguro de su pistola, abre una cerveza, murmura en voz baja algo sobre pensamientos, y luego se conecta como root.
Kyle Brandt el
29

Si no permitiría que un idiota inicie sesión en su servidor como root, entonces no siempre se ejecute como root. A menos que puedas decir de corazón que nunca has sido un idiota. ¿No realmente? ¿Estás seguro? :)

Beneficio: reduce la posibilidad de que seas root y un idiota simultáneamente.

Tom Newton
fuente
66
+1 - "Beneficio: reduce la posibilidad de que seas root y un idiota simultáneamente". Me encanta esto.
Evan Anderson el
+1 por la filosofía de Scott Adams de que todos son idiotas. :) Sí, eso significa que tú y yo también.
Ernie
Absolutamente, esta es una de mis preguntas clave en las entrevistas de trabajo, ¿cuándo lo arruinaste por última vez? Todo el mundo lo tiene, solo necesita leer los hilos aquí sobre "el fubar de sysadmin más entretenido" o lo que sea. Si alguien no admite haber cometido un verdadero error tonto al menos una vez en sus vidas, probablemente haya varias razones por las que no desea trabajar con ellos.
Tom Newton el
9

La razón principal son los errores. Si siempre eres root, un error tipográfico simple realmente podría arruinar el sistema. Si solo inicia sesión como root o usa sudo para hacer cosas que lo requieren, minimiza el riesgo de cometer un error peligroso.

Kyle Brandt
fuente
9

Cuando eres root te vuelves perezoso con los permisos, ya que tienes acceso a todo el tiempo, no te importa cuando las cosas son 777 o 644 o lo que sea. Entonces, si alguna vez deja que alguien más en su sistema no quiera tener acceso a todo, de repente se convierte en una verdadera dificultad hacer que la máquina sea segura de usar por otras personas.

Stu
fuente
55
Esto se llama "pudrición de la raíz".
kmarsh
1
Me gusta ese término, "pudrición de la raíz". De hecho, ejecutarse como root todo el tiempo puede convertir las máquinas * nix en máquinas extrañas como Windows 95 sin una apariencia de seguridad multiusuario. (Recuerdo una máquina SCO, hace años, en el que cada usuario de la aplicación de contabilidad compartida corría como root porque "hizo que los problemas de permisos desaparecen"> suspiro <..)
Evan Anderson
Recuerdo haber recibido una explicación como esa: tenían una herramienta de lista de correo ejecutándose como root, junto con sendmail. Mi respuesta fue "Los problemas de permisos también desaparecieron para los hackers".
duffbeer703
7

Hay algunos principios clave detrás de no iniciar sesión como root: 1) La contraseña de root nunca se envía a través de la red en el momento de inicio de sesión 2) No hay forma de saber quién hizo algo si varios usuarios inician sesión como la misma cuenta (root u otra). 3) Accidentalmente haciendo algo 'estúpido'

Jeff Hengesbach
fuente
3

Es más para protegerse contra usted mismo para que tenga una segunda oportunidad de revisar los comandos de mayor privilegio que está tratando de ejecutar, de forma análoga a UAC en Windows. Es bastante fácil hacer accidentalmente algo como rm -rf /iniciar sesión como root.

Además, tienes trazabilidad. Este no es un gran problema en su situación en la que usted es el único (teóricamente) que emite comandos, pero la capacidad de iniciar sesión y rastrear a un individuo es un componente clave para muchas formas de análisis.

squillman
fuente
La trazabilidad es crucial en los sistemas donde más de una persona trabaja como administrador de sistemas. No solo es deseable, sino que lo exigen los regímenes reglamentarios.
APC
Hice esto el viernes. en lugar de eliminar "/ dump / folder /" eliminé la carpeta /. Una barra invertida apestosa me recordó por qué no iniciamos sesión como root.
oneodd1
2

La diferencia es principalmente:
que no puedes hacer nada malo por accidente.
ese código "malvado" no puede hacerse cargo del sistema.
Aviso: el código maligno no significa necesariamente que alguien ya tenga acceso al sistema.

StampedeXV
fuente
Me he dado cuenta de que en estos días, el código malvado generalmente significa bots de spam, que pueden ejecutarse como cualquier usuario.
Ernie el
Si piensas en un virus (tratando de destruir algo) o un rootkit, entonces es mucho más complicado para el malware si no eres root.
StampedeXV
2

Siempre debe usar cuentas con el nivel de privilegio más bajo posible. Ejecutar como root todo el tiempo fomenta los malos hábitos y la pereza que harán que la vida sea desagradable cuando trabajas con múltiples usuarios o expones algo a una red pública / semipública.

También tenga en cuenta que el descifrado de contraseñas es solo un escenario de compromiso y tampoco es el escenario más común. Es más probable que seas víctima de una vulnerabilidad del navegador, o una vulnerabilidad en algún demonio que se está ejecutando en tu sistema.

Piensa en el código que usas sin pensar. Por ejemplo, el puerto Linux de Adobe Flash, que es una pila de popó humeante que solo se ha podido usar en el pasado relativamente reciente. ¿Qué tan seguro crees que es ese código? ¿Desea que pueda ejercer un control total de su sistema?

duffbeer703
fuente
2

Puede prevenir ataques de fuerza bruta SSH. Cada unix tiene una cuenta 'root'. Sin embargo, desde el exterior no está claro cuál sería su nombre de usuario 'sudo'. Por lo tanto, si alguien quiere intentar abrirse paso por la fuerza bruta, sabe que hay una cuenta raíz y probablemente lo probará. Sin embargo, no saben por dónde empezar si estás usando sudo.

Rory
fuente
1

Mi consejo sería intentar usar root todo el tiempo por un tiempo; pronto descubrirás por qué no deberías :)

Chopper3
fuente
1

Incluso si no confío en la "seguridad por oscuridad", seguramente hay una ventaja de usar un inicio de sesión personalizado en lugar del inicio de sesión raíz siempre existente. Por lo tanto, también puede configurar SSH para evitar el inicio de sesión raíz.

Como otro dijo también, root puede hacer todo sin ninguna confirmación. Por lo tanto, el uso de un usuario no privilegiado puede evitar errores estúpidos y errores tipográficos.

Otro argumento a favor de las cuentas de múltiples usuarios es ejecutar diferentes softwares bajo diferentes usuarios. Al hacer esto, si se explota una falla de seguridad en una aplicación, el explorador solo puede acceder a los archivos y recursos accesibles para su usuario en ejecución.

Un último punto para no usar root: consumo de recursos. Root no tiene límite en cuanto a la memoria, el tiempo de procesamiento, los manejadores de archivos o el espacio en disco que puede usar. En muchos sistemas de archivos, hay bloques de datos que están reservados solo para root. Por lo tanto, un usuario normal nunca puede usarlos para llenar su disco. El comando ulimit también se puede usar para restringir la memoria y el número de controlador de archivos que un usuario puede consumir. Pero si usted es root (o una aplicación que se ejecuta como root), nada le impedirá cambiar este límite.

rolaf
fuente
0

Sí, estoy de acuerdo con usted, y creo que es una cuestión de protección contra errores humanos y, a veces, contra programas maliciosos. Lo malo que nunca he visto es que usa root como la cuenta predeterminada de gnome.
Creo que la mayoría de los usuarios que hacen eso son los usuarios de Windows que migraron recientemente a Linux o Unix. Intente copiar el uso del privilegio de administrador en la raíz.

Ali Mezgani
fuente
0

No hay nada de malo en iniciar sesión como root. Ayuda a desarrollar la memoria muscular para escribir solo comandos seguros y promueve la precisión del pensamiento al realizar acciones con grandes consecuencias. Recomiendo trabajar como root para mejorar la administración del sistema.

también puedes hacer cosas geniales como ping -i 0.2 -c 1000 example.com

sotavento
fuente