¿Está 'OK' usar al usuario root como un usuario normal?

92

He habilitado al usuario root en mi Mac para poder iniciar sesión en él y ejecutar el Finder, etc. Siendo la persona perezosa que soy, simplemente transfirí todo desde mi directorio principal a /var/root . No estoy muy seguro de hacer esto, así que puedo devolver todo. ¿Es técnicamente "correcto" usar esto como un usuario normal? (Soy el único que puede acceder a mi computadora.)

    
pregunta 智障的人 20.06.2015 - 04:36

9 respuestas

346

Usar su computadora como usuario root siempre es como llevar 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, la Conejo adorable cuya 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 puede hacer lo que quiera, siempre que lo desee, sin necesidad de volver a casa para comprar cosas o hablar con el gerente de su banco. Pero también te pone en un gran riesgo de perder cosas, de que te las roben (no creas que la motosierra te ayudará: estarás lejos de las calles antes de que te des cuenta de que tu billetera se ha ido), hacer cosas de las que realmente te arrepientas (compra de impulsos) billetes de avión a Las Vegas mientras estaba borracho), tomar atajos peligrosos (motosierra a través de la cerca del recinto del león porque es el camino más rápido para los pandas) y sobre reaccionar (motosierra en el auto de su vecino porque su perro ladra demasiado). Y, cuando lo piensas, en su mayoría, solo vas a la oficina, vas de compras, sales con tus amigos. No necesitas 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 de root todo el tiempo. Te da una pequeña cantidad de conveniencia pero te pone en un gran peligro. Existe el peligro de que los errores estúpidos tengan resultados catastróficos ("Hey, ¿por qué rm -rf * tarda tanto en correr? **** ¡Estoy en / !"). Existe el peligro de aclimatarse a la idea de que todos los archivos son iguales y simplemente puede jugar con lo que quiera, en cualquier parte del árbol de directorios. Existe el peligro de que cualquier pirateo en su cuenta sea inmediatamente un pirateo para todo el sistema, por lo que ahora cada pieza de software en su máquina es crítica para la seguridad. E incluso si piensa que a usted no le importa que su máquina sea pirateada (después de todo, esa foto de Flopsy es un verdadero papel satinado, no un JPEG efímero), I

Root es tu disfraz de spiderman. Te da un gran poder, pero requiere una gran responsabilidad. Está allí en el armario cuando lo necesita, por lo que no tiene que usarlo todo el tiempo.

    
respondido por el David Richerby 20.06.2015 - 13:20
22

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

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

respondido por el William T Froggard 20.06.2015 - 05:20
17

Honestamente, estoy de acuerdo en que hay muchos riesgos asociados con el uso del usuario root como predeterminado. Pero permítanme simplemente repasarlos y criticar algunos de los argumentos un poco

  • Defensa contra aplicaciones : prácticamente el sistema de permisos de * nix es no lo suficientemente fuerte (por mucho) para permitir la ejecución de programas arbitrarios. Un programa malicioso en * nix puede hacer suficientes cosas malvadas (como robar sus credenciales bancarias) sin permisos de root. Será un poco más difícil para una aplicación que no sea root que para una aplicación root (por ejemplo, en lugar de instalar directamente un certificado raíz e interceptar la conexión con el banco, tendrá que jugar con el navegador, pero hey , en realidad es bastante factible y es probable que tengas que hacerlo de todas formas 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 usuario que no sea root salvará el sistema, todo Normalmente, los archivos importantes ya se perderán (ya que es mucho más probable que los archivos propiedad del usuario sean únicos).
  • Defenderse contra errores explotables en las aplicaciones que ejecutas: Ahora esto es más parecido. P.ej. cuando ejecuta un servidor web en el que hay muchas aplicaciones abiertas al exterior y, por lo tanto, se puede alcanzar fácilmente cualquier error explotable. Lo mismo se aplica, por supuesto, incluso si está sentado detrás de un enrutador y un firewall, aunque la magnitud del peligro es mucho menos importante. Una vez más, sin embargo, la pregunta es cuánto defenderá de manera realista el sistema de permisos en un sistema privado. Sin root de permisos, se puede acceder a todos los archivos privados y también es posible interceptar datos de la red ... las dos cosas más importantes que puede desear como atacante de un sistema privado.
    • (Ahora, además del sistema de permisos de archivos * nix estándar, Apple también introdujo un sistema de sandbox para aplicaciones. Por lo que sé, uno todavía es completamente funcional, incluso cuando se registra como usuario root. Si no fuera así, eso sería un factor decisivo.)

De cualquier manera, todos consideran que no creo que sea una idea tan terrible como otros dicen. Eso sí, tampoco estoy diciendo que sea una buena idea, pero creo que la gente sobreestima la utilidad del modelo de permisos 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 que evite que ocurran 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 los medidores y el interruptor para el suministro principal de agua, etc. Correr como cuenta de usuario root es como quitar el candado 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 el usuario root , no quiere decir que no sea útil para bloquearlo en ciertos casos, por ejemplo, en oficinas u otros edificios semipúblicos, a menudo está cerrado, pero en las casas normales es mucho más importante tenga una cerradura fuerte en la puerta frontal (no instale cosas aleatorias, firewall, etc.) y ponga todas sus cosas importantes en una caja fuerte (haciendo copias de seguridad, cifrando cosas, etc.). ¿Dolerá un candado extra en ese armario? No, entonces podría ser una buena idea tenerlo en su lugar por si acaso, pero con toda probabilidad será bastante inútil.

Correr como usuario root no es nada como tomar todos los candados de tu casa y llevar todo el material contigo en la caja fuerte todo el tiempo, como afirma David Richerby. Su pasaporte (identidad) no está protegido de ninguna manera 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 son probables no protegidas por el sistema de archivos * nix (si está usando Safari, sin embargo, podrían estar parcialmente protegidos por el modelo de permisos del sistema de archivos * nix, pero sin root aún puede agregar una extensión invisible a Safari y la siguiente vez solo interceptar la contraseña la próxima vez) lo usa), sus fotos definitivamente no están protegidas por el sistema de archivos * nix y si está utilizando el terminal, ya lleva consigo una motosierra (según el punto 2 anterior).

    
respondido por el David Mulder 21.06.2015 - 20:50
12

En 1990, estaba trabajando en un proyecto con un tipo llamado Tom. Estábamos usando un servidor SUN que ejecuta SunOS (un derivado de Unix, predecesor de Solaris). Esto sucedió en los días previos a las unidades de CD y las unidades de memoria flash, por lo que si fallaste el sistema operativo en tu disco duro no habría forma de recuperarlo.

Tom solía iniciar sesión rutinariamente como root. Le dije que era una mala idea, pero él no escuchó. Un día le oí decir "Uh-oh". Él tenía la intención de escribir cometer de esta manera:

mv something* .

Lamentablemente, 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 utilizó todo lo que terminó como el nombre final en la lista como directorio de destino, y movió todo lo demás en él. Además, desafortunadamente, actualmente se encontraba en el directorio raíz, por lo que básicamente todo el sistema de archivos se trasladó a uno de sus subdirectorios.

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

No hay problema, ¿verdad? Podríamos simplemente mover todo de vuelta. Podríamos, excepto que el comando mv no era uno de los comandos integrados del shell. En su lugar, 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 estaban. .

Y luego le dije: "Tom, esta es la razón por la que es una mala idea iniciar sesión de forma rutinaria como root".

    
respondido por el Mike Ciaraldi 26.06.2015 - 19:32
9

En general, desea mantener la propiedad de sus archivos personales separados del usuario root. Es por eso que creas una cuenta para ti mismo como administrador. La forma aceptada, bajo OS X, para obtener acceso de nivel raíz es usar el comando sudo 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, necesitas usar sudo como se muestra a continuación.

sudo gpt -r show /dev/disk0

Si desea convertirse en el usuario root para evitar ingresar sudo , solo puede ingresar sudo sh . El comando exit se puede usar para salir del usuario root.

Si desea ejecutar una aplicación como usuario root, puede utilizar la aplicación Terminal. Por ejemplo, si desea iniciar el 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 de Finder abiertas al mismo tiempo, generalmente es mejor salir de la aplicación de Finder primero. Esto se puede hacer usando el siguiente comando de terminal.

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

Una palabra de advertencia: preceder a un comando con sudo no es lo mismo que convertirse en el usuario root. Por ejemplo, los comandos

sudo echo $USER
sudo echo $SUDO_USER

da como resultado el mismo resultado que los comandos que se muestran a continuación.

echo $USER
echo $SUDO_USER

Si te conviertes en el usuario root (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
    
respondido por el David Anderson 20.06.2015 - 06:36
4

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

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

No sé si es tan malo de un problema de seguridad. Personalmente, me preocuparía más los problemas con la organización y los permisos que cualquier otra cosa.

    
respondido por el sudo 21.06.2015 - 21:30
4

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

  • El usuario raíz puede colocar fácilmente los archivos en ubicaciones que son mucho más difíciles de rastrear.
  • El usuario raíz tiene acceso directo 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 formato a los nodos del dispositivo y puede golpear 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 potencialmente modificar 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 se encuentran en su directorio de inicio de todos modos, pero si se ejecuta como root, la información y todo el sistema corren un mayor riesgo. El consejo de no ejecutarse como root no está fuera de lugar. Si una persona no entiende las implicaciones de correr como root, definitivamente no debería hacerlo. Sugerir cualquier otra cosa es irresponsable.

    
respondido por el bodangly 23.06.2015 - 01:39
1

A menos que esté usando Backtrack / kali para una tarea específica: NO. Trate al superusuario como lo haría con una pistola 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.

    
respondido por el SamWN 25.06.2015 - 15:04
0

NO! Esto hará que tu sistema se rompa en muy poco tiempo. En su lugar, su o sudo en la raíz según sea necesario. Si absolutamente, positivamente, debe ejecutarse como root , al menos cierre la sesión en cualquier momento cuando no esté usando la computadora. Si su sistema es capaz de ejecutar multiusuario, pero no hay usuarios configurados, le sugiero que cree un usuario privilegiado (es decir, uno que pueda sudo / su en la raíz según sea necesario.) ASAP !!! fuerte>

    
respondido por el tucker twomey CodeZypher 23.06.2015 - 20:09

Lea otras preguntas en las etiquetas