¿Está 'bien' usar al usuario root como usuario normal?

94

He habilitado el usuario root en mi Mac para poder iniciar sesión y ejecutar Finder, etc. Siendo la persona perezosa que soy, acabo de transferir todo desde mi directorio de inicio a /var/root. No estoy muy seguro de hacer esto, así que puedo mover todo hacia atrás. ¿Es técnicamente 'OK' usar esto como un usuario normal? (Soy el único que puede acceder a mi computadora).

智障 的 人
fuente
66
Buena pregunta con 'el Capitan' sin raíz a la vuelta de la esquina.
CousinCocaine
44
Qué significa específicamente (acceder a mi computadora). Es probable que te conectes a Internet. No especifica qué software le da acceso a la computadora. ¿Qué te parece 'OK'? Felicitaciones por obtener algunas excelentes respuestas generales. Probablemente sea mejor hacer la pregunta más detallada (si existe) como una pregunta de seguimiento.
bmike
66
Puede usar una cuenta raíz como usuario normal siempre que sepa la respuesta a la pregunta "¿Está 'bien' usar al usuario raíz como usuario normal?". Una vez que sepa la respuesta, no lo hará. ;-)
Dakshinamurthy Karra
Es posible que desee agregar la distinción entre root, administrador y usuario normal. Creo que el administrador es el predeterminado.
Steve Moser
66
"Soy el único que puede acceder a mi computadora" <- Lol
Tim

Respuestas:

352

Usar su computadora iniciada como root todo el tiempo es como llevar siempre consigo todas sus llaves, su pasaporte, $ 5,000 en efectivo, ese pedazo de papel con todas sus contraseñas escritas y la única foto que tiene de Flopsy, el adorable conejo cuyo la muerte rompió tu corazón de siete años. Ah, y una motosierra.

Es decir, es muy conveniente de vez en cuando, porque significa que puedes hacer lo que quieras, cuando quieras, sin necesidad de volver a casa para obtener cosas o hablar con el gerente de tu banco. Pero también lo pone en gran riesgo de perder cosas, robarlas (no piense que la motosierra lo ayudará: estará lejos antes de que note que su billetera se ha ido), haciendo cosas que realmente lamentará más tarde (compra por impulso boletos de avión a Las Vegas mientras está borracho), tomar atajos peligrosos (cortar en cadena a través de la cerca del recinto del león porque esa es la forma más rápida de llegar a los pandas) y reaccionar en exceso (cortar en cadena el automóvil de su vecino porque su perro ladra demasiado). Y, cuando lo piensas, sobre todo, solo vas a la oficina, vas de compras, pasas el rato con tus amigos. Usted no No necesito todas esas cosas contigo todo el tiempo solo por la conveniencia de necesitarlo, ¿qué ?, ¿una vez al mes? ¿Una vez por semana?

Entonces, no, no está bien usar la cuenta raíz todo el tiempo. Le brinda una pequeña cantidad de conveniencia, pero lo pone en gran peligro. Existe el peligro de que los errores estúpidos tengan resultados catastróficos ("Oye, ¿por qué rm -rf *tardas tanto en correr? ¡Estoy dentro /!"). Existe el peligro de aclimatarse a la idea de que todos los archivos son iguales y que solo puede meterse con lo que quiera, en cualquier parte del árbol de directorios. Existe el peligro de que cualquier pirateo a su cuenta sea inmediatamente un pirateo a todo el sistema, por lo que ahora cada pieza de software en su máquina es crítica para la seguridad. E incluso si cree que no le importa que su máquina sea pirateada (después de todo, esa foto de Flopsy es una hoja de papel brillante, no un efímero JPEG), yo Me preocupa que su máquina sea pirateada porque está en la red de bots que está montando el ataque DDOS contra cualquier servicio de Internet al que no pueda acceder hoy.

Root es tu disfraz de Spiderman. Te da un gran poder pero requiere una gran responsabilidad. Está en el armario siempre que lo necesite, para que no tenga que usarlo todo el tiempo.

David Richerby
fuente
54
No solo fue una pieza entretenida y bien escrita, sino que también suena a la verdad y merece la respuesta aceptada
wrossmck
17
Sigo volviendo a esto. Este es un consejo genuino con la mayor cantidad de humor que puedes poner en algo y aún así ser serio.
智障 的 人
19
@ 9000 Ese no ha sido el caso desde al menos XP.
David Richerby
28
¿Está relacionada la muerte de Flopsy y la motosierra?
Sirex
29
"La raíz es tu disfraz de hombre araña". Estoy muriendo aquí.
GeminiDomino
23

Puede, pero es un gran riesgo de seguridad y estabilidad. Al hacerlo, cualquier aplicación tendrá acceso completo a su computadora. No puedes saber qué están haciendo con ese acceso. Es innecesario, y realmente inseguro.

Para obtener más información general sobre esto, vea

William T Froggard
fuente
Eliminé los comentarios, ya que en realidad no agregaron a la respuesta, ¿pueden continuar la discusión en el chat?
nohillside
Gracias por las ediciones. Espero que esto corrija parte de la confusión con respecto a mi publicación.
William T Froggard
17

Honestamente, estoy de acuerdo en que existen muchos riesgos asociados con el uso del rootusuario por defecto. Pero déjenme revisarlos y criticar un poco algunos de los argumentos.

  • Defensa contra las aplicaciones : prácticamente el sistema de permisos de * nix no es lo suficientemente fuerte (de lejos) como para permitir ejecutar programas arbitrarios. Un programa malicioso en * nix puede hacer suficientes cosas malas (como robar sus credenciales bancarias) sin permisos de root. Será un poco más difícil para una no rootaplicación que para una rootaplicación (por ejemplo, en lugar de instalar directamente un certificado raíz e interceptar la conexión al banco, tendrá que jugar con el navegador, pero bueno, eso es bastante factible y probablemente tengas que hacer eso de todos modos para asegurarte de que el usuario no note nada)
  • Defensa contra errores del usuario (como ejecutar un comando incorrecto y eliminar todos los archivos del sistema) : Absolutamente cierto, pero aunque un rootusuario no guarde el sistema, normalmente todos los archivos importantes ya se perderán (ya que los archivos propiedad del usuario son mucho más probable que sea único).
  • Defensa contra errores explotables en las aplicaciones que ejecuta: ahora esto es más parecido. Por ejemplo, cuando ejecuta un servidor web donde muchas aplicaciones están abiertas al exterior y, por lo tanto, cualquier error explotable será fácilmente alcanzado. Lo mismo se aplica, por supuesto, incluso si está sentado detrás de un enrutador y un firewall, aunque el alcance del peligro es mucho menos significativo. Sin embargo, una vez más, la pregunta es cuánto defenderá de manera realista el sistema de permisos en un sistema privado. Sin rootpermisos, todavía se puede acceder a todos los archivos privados y también es posible interceptar datos de red ... las dos cosas más importantes que puede desear como atacante de un sistema privado.
    • (Ahora, además del sistema de permiso de archivos * nix estándar, Apple también ha introducido un sistema de sandboxing de aplicaciones. Hasta donde sé, uno todavía es completamente funcional incluso cuando está conectado como root. Si no lo fuera, entonces sería un factor decisivo total)

De cualquier manera, todos consideraron que no creo que sea una idea tan terrible como afirman otros. Eso sí, no estoy diciendo que sea una buena idea tampoco, pero creo que la gente sobreestima la utilidad del modelo de permiso del sistema de archivos * nix para protegerlo. Sí, es increíblemente útil para ciertas cosas (por ejemplo, sistemas multiusuario, servidores complejos de múltiples aplicaciones, mantener el sistema en funcionamiento sin importar lo que suceda (en ejecución, pero no necesariamente utilizable), bloquear archivos importantes (aunque es mejor cifrarlos ...), etc.), pero no es una protección mágica lo que evita que sucedan cosas malas.

En los comentarios se me ocurrió una analogía que parece bastante adecuada para describir la situación. En holandés tenemos una palabra para el pequeño armario donde puede encontrar todos los medidores y alternar el suministro principal de agua, etc. Ejecutar como la rootcuenta de usuario es como quitar la cerradura de ese pequeño armario. Hecho irónico: la mayoría de las personas no tienen cerraduras en primer lugar. Ahora, al igual que con elrootusuario, eso no quiere decir que no sea útil cerrarlo con llave en ciertos casos, por ejemplo, en oficinas u otros edificios semipúblicos, a menudo está cerrado con llave, pero en las casas normales es mucho más importante tener una cerradura fuerte en la puerta principal ( no instalar cosas aleatorias, firewall, etc.) y poner todas sus cosas importantes en una caja fuerte (hacer copias de seguridad, cifrar cosas, etc.). ¿Te dolerá una cerradura adicional en ese armario? No, por lo que podría ser una buena idea tenerlo en su lugar por si acaso, pero con toda probabilidad será bastante inútil.

Correr como el rootusuario no es nada como tomar todas las cerraduras de su casa y llevar todas las cosas en la caja fuerte con usted todo el tiempo como afirma David Richerby. Su pasaporte (identidad) de ninguna manera está protegido por el sistema de archivos * nix, su dinero (cuenta bancaria) no está protegido de ninguna manera por el sistema de archivos * nix, sus contraseñas importantes probablemente no estén protegidas por el sistema de archivos * nix (si está utilizando Safari, sin embargo, en realidad podrían estar parcialmente protegidos por el modelo de permiso del sistema de archivos * nix, pero sinroot aún puede agregar una extensión invisible a Safari y luego solo interceptar la contraseña la próxima vez que la use), sus fotos definitivamente no están protegidas por el sistema de archivos * nix y si está usando el terminal, ya lleva una motosierra alrededor de usted (por el punto 2 anterior).

David Mulder
fuente
2
Si rechaza una respuesta, sírvase señalar qué sería incorrecto en mi análisis. Soy perfectamente consciente de que mi respuesta es un poco poco ortodoxa, pero esperaría que las TIC sean lo suficientemente progresivas como para que las respuestas sean juzgadas por su contenido y no por lo bien que se ajustan a los dogmas tradicionales.
David Mulder
3
Esto merece más votos. Lo único que realmente me importa en mi computadora son los archivos propiedad de mi usuario (no root). Representan mis fotos, mi música, videos de mis hijas ... ¡el resto se puede reinstalar fácilmente!
Isak Savo
66
Esta lógica es básicamente la misma que decir porque los abridores de puertas de garaje remotos son bastante débiles, realmente no sería un gran problema si nadie cerrara sus puertas de garaje. La premisa es cierta, pero el consejo es falso. La seguridad efectiva se compone de muchas piezas pequeñas que trabajan juntas. Como todos en un vecindario que mantienen garajes cerrados. Hace que el vecindario sea más seguro para todos.
Caleb
2
@Caleb Hay una gran diferencia entre ser propietario de una casa en un vecindario e invitar a alguien a entrar. Y para cuando alguien ingrese a su casa, hay poco que lo detenga en los sistemas estándar * nix. Eso es lo que estoy describiendo en esta respuesta: una vez que alguien entre en su sistema, los permisos del sistema de archivos * nix no ayudarán, porque no están protegiendo las cosas que considera importantes en un sistema privado. Lo único que es (cont.)
David Mulder
3
No tener root no lo impide, claro. Pero esa es una declaración sutilmente diferente; algo así como cómo dije "ataque", no "compromiso". Puede hacer mucho más en la red con root. Si su máquina zombie está participando en una inundación ICMP simple, por ejemplo, necesita acceso de socket sin procesar para generar ese tráfico ICMP (por eso ping es suid root). Lo mismo ocurre con otras modificaciones útiles de paquetes maliciosos.
dannysauer
14

Alrededor de 1990 estaba trabajando en un proyecto con un tipo llamado Tom. Estábamos usando un servidor SUN con SunOS (un derivado de Unix, predecesor de Solaris). Esto fue en los días anteriores a las unidades de CD y unidades flash, por lo que si estropeó el sistema operativo en su disco duro, no había forma de recuperarse.

Tom solía iniciar sesión habitualmente como root. Le dije que era una mala idea, pero no me escuchó. Un día lo escuché decir "Uh-oh". Tenía la intención de escribir algo así:

mv something* .

Desafortunadamente, dejó el punto final, por lo que el shell expandió todos los nombres de archivos y directorios que coincidían con este patrón. Luego, el comando mv usó lo que terminó como el nombre final en la lista como el directorio de destino, y movió todo lo demás a él. Desafortunadamente, también estaba actualmente en el directorio raíz, por lo que básicamente todo el sistema de archivos se trasladó a uno de sus subdirectorios.

Utilicé la flecha hacia arriba para recuperar el comando anterior y vi lo que había sucedido. Lo primero que dije fue: "¡No cierre la sesión! O nunca podrá volver a iniciar sesión".

No hay problema, verdad? Podríamos mover todo de vuelta. Podríamos, excepto que el comando mv no era uno de los comandos integrados del shell. En cambio, era un programa ejecutable, almacenado en uno de los archivos que se habían movido. Afortunadamente, ls era un comando incorporado, así que después de usar ls para confirmar a dónde se habían movido los comandos, pude encontrar el comando mv, invocarlo con su nombre de ruta completo y volver a colocar las cosas donde se suponía que debían estar. .

Y luego le dije: "Tom, por eso es una mala idea iniciar sesión habitualmente como root".

Mike Ciaraldi
fuente
10

En general, desea mantener la propiedad de sus archivos personales separados del usuario raíz. Es por eso que crea una cuenta para usted como administrador. La forma aceptada, en OS X, de obtener acceso a nivel raíz es usar el sudocomando desde la aplicación Terminal. Por ejemplo, si desea ver la partición de su unidad interna, el comando es

gpt -r show /dev/disk0

que si se ingresa dará como resultado el siguiente mensaje de error

gpt show: unable to open device '/dev/disk0': Permission denied

Para usar el comando, debe usar sudocomo se muestra a continuación.

sudo gpt -r show /dev/disk0

Si desea convertirse en el usuario root para evitar ingresar sudo, simplemente puede ingresar sudo sh. El exitcomando se puede usar para salir de ser el usuario root.

Si desea ejecutar una aplicación como usuario root, puede hacerlo utilizando la aplicación Terminal. Por ejemplo, si desea iniciar Finder como usuario root, ingrese el siguiente comando.

sudo /System/Library/CoreServices/Finder.app/Contents/MacOS/Finder &

Para evitar la confusión de tener dos aplicaciones Finder abiertas al mismo tiempo, generalmente es mejor salir primero de la aplicación Finder. Esto se puede hacer usando el siguiente comando de terminal.

osascript -e 'tell application "Finder" to quit'

Una advertencia: preceder un comando con sudono es lo mismo que convertirse en usuario root. Por ejemplo, los comandos

sudo echo $USER
sudo echo $SUDO_USER

dar como resultado la misma salida que los comandos que se muestran a continuación.

echo $USER
echo $SUDO_USER

Si se convierte en el usuario raíz (el superusuario), los mismos comandos dan como resultado una salida diferente. Esto se puede verificar ingresando los comandos que se muestran a continuación.

sudo sh
echo $USER
echo $SUDO_USER
sudo echo $USER
sudo echo $SUDO_USER
exit
David Anderson
fuente
4

En caso de que las otras razones no fueran lo suficientemente buenas ... No olvides que no puedes usar Homebrew como root (que en realidad es un gran dolor). Otros programas tampoco le permiten usarlos como root o tener problemas de permisos cuando lo hace, a menudo sin razón aparente, porque sus programadores suponen que no se ejecutarán como root. Creo que Steam es uno de ellos.

También es bueno tener todo el sistema y las cosas del usuario separadas por varias razones.

No sé si es un problema de seguridad tan malo. Yo personalmente estaría más preocupado por los problemas con la organización y los permisos que cualquier otra cosa.

sudo
fuente
4

Solo algunos ejemplos de por qué no está bien ejecutarse siempre como root:

  • El usuario root puede colocar fácilmente archivos en ubicaciones que son mucho más difíciles de rastrear.
  • El usuario raíz tiene acceso sin formato a las interfaces y, por lo tanto, puede poner una interfaz en modo promiscuo o monitor y registrar TODO el tráfico de red.
  • El usuario raíz tiene acceso sin procesar a los nodos del dispositivo y puede dañar un disco haciendo que sea mucho más difícil recuperar archivos que un simple 'rm' a nivel de usuario. El usuario root también puede modificar potencialmente los sectores de arranque de una unidad, haciendo que el malware sea persistente incluso después de una reinstalación del sistema operativo.

Podría seguir. El punto es que hay buenas razones para no ejecutarse como root. No estoy en desacuerdo con que, para la mayoría de las personas, sus datos más personales están en su directorio de inicio de todos modos, pero correr como root aún pone esos datos y todo el sistema en un mayor riesgo. El consejo de no ejecutar como root no está fuera de lugar. Si una persona no comprende las implicaciones de correr como root, definitivamente no debería estar haciéndolo. Sugerir cualquier otra cosa es irresponsable.

bodangly
fuente
1

A menos que esté usando backtrack / kali para una tarea específica: NO. Trate al súper usuario como lo haría con un arma cargada: si tiene una necesidad inmediata y la intención de usarla: OK. Sin embargo, si puede resolver su problema de cualquier otra manera (por ejemplo, "sudo"), hágalo.

SamWN
fuente
0

¡NO! Esto hará que su sistema se rompa en muy poco tiempo. En cambio, suo sudoen la raíz según sea necesario. Si absolutamente, positivamente, debe ejecutarse como root, al menos, cerrar sesión en cualquier momento cuando no esté utilizando la computadora. Si el sistema es capaz de ejecutar varios usuarios, pero los usuarios no están configurados, sugiero crear un usuario privilegiado (es decir: uno que puede sudo/ su. En la raíz como sea necesario) lo antes posible !!!

tucker twomey CodeZypher
fuente