Root

De Wiki de la Comunidad Mandriva

¡Atención!
este articulo aun esta siendo traducido, poco a poco se ira corrigiendo errores


Introduccion a 'Root'


Unix y sus clones derivados, incluyendo Linux, han sido diseñados como sistemas multi-usuario. Esto es inevitable ya que en los días en que Unix fue diseñado, las computadoras personales, simplemente no existían. Una estructura en red consistía en un servidor, la computadora central, a la que los clientes estan conectados a través de "dumd" en las terminales.

Un servidor central con recursos compartidos requiere alguien que lo mantenga en su funcionamiento, el administrador del sistema, también conocido como 'superusuario', o 'root'. El nombre de la cuenta de 'root' para esta función es costumbre, pero no es obligatorio. Posiblemente se deriva del hecho que 'root' es la única cuenta que tiene permisos de escritura en el directorio '/ ' (" directorio raíz "), que es la raíz del sistema de archivos (de ahí el nombre). El poder de root no viene de su nombre, sino de su ID de usuario, que es '0 '.

Image:Konsole.png
[root@Computadora ~]# ~# echo $UID
0

Este comando lee el contenido de la variable del entorno $ UID, que contiene el identificador digital del usuario actual (el "activo" usuario como se dice en informática).

El fichero /etc/passwd siempre asigna el UID (User ID): '0' al superusuario o root, como se puede comprobar esto:

Image:Konsole.png
[root@Computadora ~]# grep root /etc/passwd root:x:0:0:root:/root:/bin/bash

El sistema de archivos /etc/passwd contiene una fila para cada usuario del sistema. Cada línea consiste en "amplificadores " separados por dos puntos. El primer campo contiene el nombre de usuario (root) y su tercer campo identificador numérico (UID), aquí '0'.

El sistema de permisos para los archivos en Unix y derivados se ha programado para limitar el acceso para los usuarios normales a los archivos del sistema, al mismo tiempo se otorga al titular de la cuenta de administrador o root los permiso de la raíz de todos los archivos. Puesto que todo en GNU / Linux es a partir de archivos en la raíz esto daria entender que tiene un poder total sobre todo el sistema.

El uso inadecuado de root puede ser perjudicial.


Es muy tentador para los usuarios novatos el uso de la cuenta de root en un sistema Gnu/Linux , especialmente aquellos que están acostumbrados a otros sistemas operativos (OS) puesto no logran los permisos del sistema para reemplazar ciertas caracteristicas sin tener en cuenta las posibles consecuencias que contraerian, por medida de seguridad la cuenta de root no se otorga al usuario novato. Este enfoque daría sólo un alivio momentáneo! Hay buenas y excelentes razones, para que usted deba aprender a usar su cuenta de usuariosin ser root para hacer su trabajo diario en el sistema. la cuenta root, por su parte, es la cuenta de administración del sistema.

Los diseñadores de sistemas operativos como Unixy derivados suponen que el usuario root sabe exactamente lo que hace. Recuerde que cuando se diseñó Unix, los directores fueron los maestros de amplias redes en un momento en que la gente común nunca había oído hablar de computadoras. Para el usuario root no hay red de seguridad, ningún mensaje como "¿Estás seguro que quieres hacer esto?", Ni copias de seguridad automáticas. Si te equivocas con root, pones en riesgo todo el sistema.


¡Atención!

"Esta es una pequeña historia . Imaginen que tiene el fichero sendmail.cf en /etc. Este fue mi caso, Yo trabajaba con sendmail y buscamos algunas ficheros para deshacerme de sendmail.cf.xxx . Entonces utilize el comando rm digite de la siguiente manera:

rm -f sendmail.cf. *

la primera sorpresa que me obtuve fue la demora en la eliminacion de los fichero. Cuando detube el proceso, me di cuenta que era demasiado tarde, luego me di cuenta de lo que.realmente habia ocurrido.

(Richard Eiger in comp.unix.admin)


¿Has entendido?

El autor de esta historia quería escribir
"rm -f sendmail.cf.*"
pero el espacio extra entre sendmail.cf y el asterisco, se ha transformado lo que era escrito en un símbolo del interés de eliminar no sólo el archivo sendmail.cf, sino también todos los demás los archivos en el directorio raíz del directorio actual, en este caso fue el directorio /etc que contiene todos los archivos de configuración del sistema ...

Usted tiene mas probabilidades de dañar su sistema si esta con la cuenta de root, como en nuestro ejemplo, que en sistemas operativos Win32. En la medida que los programadores del sistema operativo sabían que no habría un error de ese modo, por lo tanto han desarrollado otros métodos para proteger sus sistema de usted.

¡Téngalo en cuenta!
Trabaja mas usando tu cuenta normal y no la de root asi protegeras de posibles ataques o de usuarios maliciosos o torpes, pero tambien en favor de uno mismo!


Esto no es Unix!


¿Cuál es el punto de estar en un sistema operativo diferente, para realizar el ejemplo anterior? Aparte del hecho de que esta estrategia no funcionará de todas maneras, ¿qué hacer si estás en un sistema Unix/Linux con un usuario diferente y no tienen la posibilidad de convertirse en root? Nunca se sentirá como en casa mientras usted no acepta las condiciones se hacer las cosas de una manera diferente en los sus sistema Unix/Linux,

Seguridad


Toda persona que tenga acceso físico a un tipo Unix ordenador es capaz de tener acceso de root, si tiene acceso al sistema de archivos (por ejemplo, disquete, CD-ROM, dispositivo USB, Internet), porque se puede editar el fichero '/etc/shadow'. En este archivo se almacenna la contraseña para todos los usuarios. Puede ser fácilmente modificados y establecer un ('*')sin contraseña. Así que para la seguridad perfecta tendrá que asegurar el acceso físico a su equipo. Todos los procesos iniciados por 'root' tener privilegios de root, lo que significa que puede hacer casi todo lo que quiere, Ni siquiera es necesario un programa malicioso como un virus, un troyano o un gusano para causar daños. Esos son muy raros en Linux (hasta ahora). Los errores de programación suceden, y más aún en los programas de Linux, que a menudo se basan en el usuario, como un medidor de aplicativos, caso contrario de Windows, donde la prueba se realiza generalmente antes del lanzamiento de un producto. Esto es posible porque los programadores pueden confiar en el mecanismo de permisos en Linux para evitar que sus programas de hacer un daño real al sistema. Si usted puede evitar que al iniciar estos programas como 'root', algunos dirán que no tiene ninguna justificación para despues quejarse cuando se provoque un error critico en el sistema. Incluso los programas estables pueden contener errores de programación relacionados con la seguridad (también conocido como 'exploits'). Estos errores pueden permitir a un atacante ejecutar comandos en su propio sistema con los permisos obtenidos del programa defectuoso. Si este programa se ejecuta con privilegios de 'root', básicamente le entregó el control de su máquina al intruso malintencionado. En otras palabras : use la cuenta de root cuando se absolutamente necesario el trabajo manual en el sistema.

¡Téngalo en cuenta!

¡Atención!

Mandriva Linux genera actualizaciones de seguridad para el sistema, son diseñados para corregir las vulnerabilidades, y se ofrecen regularmente a los usuarios. No ignore estas actualizaciones, y recuerde hacer sus actualizaciones regulares, es tan fácil con Mandriva después de todo!

Tareas que requieren privilegios de root


Por supuesto, hay tareas que requieren privilegios de root, pero éstas no son tareas cotidianas. Es más, cuando se utiliza herramientas como el Centro de Control de Mandriva, se le pedirá la contraseña de root de forma automática en el caso de no ser root. Y hay otras herramientas que le permiten asumir privilegios de root eventualmente siempre que lo necesite. Estos serán discutidos en la siguiente etiqueta.

  En términos generales, sólo hay dos tareas que requieren "privilegios de root": 

·Mover archivos o directorios dentro y fuera de los directorios del sistema, la copia de archivos en los directorios del sistema. Mover archivos de los directorios del sistema requiere privilegios de root, ya que el archivo original se elimina en el proceso. Instalación del software mediante repositorios o también RPMs, generalmente se instalan en los directorios de sistema que solo pueden ser escritos por sólo root. Si compila desde el código fuente, puede configurarlo e instalarlo y ejecutarlo desde el directorio /home del usuario, en cuyo caso usted no necesitara privilegios de root para instalar el software.

¡Téngalo en cuenta!

¡Atención!

Compilación de software no requiere los privilegios de 'root' cuando se hace en su directorio principal, y de hecho no se debe hacer como 'root' por razones de seguridad


·Escribir o modificar en archivos en los directorios y ficheros del sistema. Este sistema consiste en la edición de archivos de configuración, ya sea a mano o por una aplicacion, sino también la ejecución de programas que generaran salida a archivos en los directorios del sistema como 'updatedb'. Tenga en cuenta que muchos programas que permiten configuracion por usuarios, controlando los archivos en el directorio /home del usuario.

Otro caso es posible que tenga que estar conectado como root cuando quiera cambiar los permisos de ficheros o directorios .

¡Téngalo en cuenta!

¡Atención!

En el caso que desee acceder a los ficheros en los directorios del sistema, no es necesario ser root en la mayoría de los casos. Usted puede nagevegar entre directorios del sistema y leer la mayoría de los archivos de configuración y toda la documentación de los archivos desde su cuenta de usuario.


Convertirse en root con 'su':


Para llevar a cabo las tareas administrativas asignadas en la raíz, no es necesario (ni deseable, por cierto!)reconectarse al sistema como root, sólo tienes que escribir:

Image:Konsole.png
[usuario@computadora ~]$ su
Password :

en la terminal o consola (shell) y proporcionar la contraseña de root. Una vez hecho esto, usted es root y se puede ejecutar cualquier programa como root, incluyendo el inicio de una aplicacion con una interfaz gráfica de usuario (esto sólo si se está ejecutando un entorno gráfico de la consola, como la utilidad de KDE Konsole , pero si usted está en una consola de texto accesible por <CTRL+ALT+Fn>, no se podra ejecutar aplicaciones gráficas). Usted puede regresar a su cuenta de usuario pulsando <CTRL+D> o digitando : exit

Una forma práctica de evitar que abra muchos terminales virtuales con su, es crear una y utilizarlo para realizar todas las tareas que requieren ser superusuario durante su sesión de trabajo. Por supuesto, usted debe estar asegurarse de que el usuario tenga acceso físico a su equipo durante este período de sesiones. Además, se recomienda cerrar la terminal o salga de la cuenta de root cuando se está conectado a Internet.

Contenido

su -

Al cambiar a root con el comando su, probablemente ha notado que usted permanece en el mismo directorio de trabajo como antes (el comando pwd muestra el directorio "Where You Are")

Image:Konsole.png
[usuario@computadora ~]$ pwd /home/foo
Image:Konsole.png
[usuario@computadora ~]$ su Password :
Image:Konsole.png
[root@Computadora ~]# pwd /home/foo

Si usted quiere tener todos los permisos de root, incluido el directorio de trabajo, cuando se utiliza el comando su, sólo tiene que forzar la lectura de archivos de configuración para /etc/bashprofile y ~/,Bash_profile logeando se en la consola o shell de la suigiente manera:

Image:Konsole.png
[usuario@computadora ~]$ pwd /home/foo
Image:Konsole.png
[usuario@computadora ~]$ su - Password :
Image:Konsole.png
[root@Computadora ~]# pwd /root

Entonces usted automaticamente se posicionara en el directorio de /root que esta en la raiz y en general podra desplazarce por todo el entorno.

su -c

Un util uso de su puede ser de la siguiente manera:

Image:Konsole.png
[usuario@computadora ~]$ su -c "comando"


su -p

Ahora ponga atencion con el siguiente texto, algunos de los valores técnicos de la variable $PATH pueden ser diferentes dependiendo de si uno es un usuario normal o root. Ejemplo, usted podría tener esto (esto puede variar dependiendo de las rutas agregadas a los archivos de configuración de su shell), digite el comando echo $PATH

·el valor para un usuario normal: /usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin/:/usr/games:/home/usuario

·el valor para el usuario root: /sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/sbin

Exit root

para salir de usuario root y volver al usuario regular, digite:

Image:Konsole.png
[root@Computadora ~]# exit

o facilemente: presione la combinacion de teclas en la consola o shell <Ctrl-D>.

Además, se recomienda cerrar la terminal o salga de la cuenta de root cuando se está conectado a Internet.

Intercambio rapido usuario <> root


Usted piensa que tiene que utilizar varias veces root y intercalar cambios en su identidad de usuario normal? Y no quiere volver a escribir una y otra vez la contraseña (inevitablemente larga y compleja) que ha asignado a root? si lo que desea es permanecer en una sola consola y reducir al mínimo período de permanencia en un consola como root.

Cambie normalmente a root usando su :

Image:Konsole.png
[usuario@computadora ~]$ su Password :

cuando termine todos sus pequeños trabajaos como root, y llege el momento de volver a su usuario normal, y no sea necesario de tipear exit (o de presionar <Ctrl+D>) como es usual, solo digite:

Image:Konsole.png
[root@Computadora ~]# suspend


Este comando establece la instancia en Bash el inició del usuario root en un segundo plano y a su vez usted cambiara a su usuario normal. Ahora usted puede alternar entre el usuario normal y root o viceversa.despues de todo root se encuentra en un segundo plano, al cual puede acceder digitando fg (foreground):

Image:Konsole.png
[usuario@computadora ~]$ fg

Y estaras en root . Puede usarlo tantas veces como sea necesario el cambio entre root y el usuario normal con la FG.

Herramientas personales