• No se han encontrado resultados

Administración de usuarios

In document GNU/Linux básico. Jordi Serra Ruiz PID_ (página 69-72)

3. Taller de Ubuntu

3.7. Administración de usuarios

Debemos ser muy cuidadosos a la hora de trabajar desde el usuario root del sistema, puesto que tiene poder para hacer cualquier cosa y, por ello, podría tanto estropear todo el sistema como introducir programas maliciosos en él sin darse cuenta. Obviamente, es mucho mejor si se trabaja como es debido siempre, es decir, utilizando la cuenta de root solo cuando es estrictamente ne- cesario, como en el primer paso que daremos a continuación: crear un nuevo usuario del sistema y asignarle una cuenta, operación que solo la puede reali- zar el root. Procedemos, por tanto, a crear un usuario.

Para convertir el usuario por defecto de Ubuntu a root, se ha de realizar a través del comando de cambio de usuario su y aplicando el parámetro –, que nos cambia todas las variables de entorno por las del usuario root. Pero además, se debe hacer con el comando sudo para que no nos pida la contraseña de root.

ubuntu@ubuntu$ sudo su - root@ubuntu#

root@ubuntu# adduser user00

De este modo se crea el usuario, pero el proceso ha sido un poco opaco, puesto que el sistema no nos ha devuelto ninguna información respecto a esta orden que acabamos de ejecutar. No sabemos, pues, ni a qué grupo o grupos pertene- ce este usuario, dónde tiene el directorio personal, qué shell se le ha asignado por defecto, etc. Mucha de esta información la encontraremos en el fichero de contraseñas (/etc/passwd), así que analizaremos, por campos, su contenido:

root@ubuntu:# cd /etc

root@ubuntu:/etc# cat passwd

root:x:0:0:root:/home/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh . . . partimag:x:104:65534::/home/partimag:/bin/false user00:x:1000:1000:,,,:/home/user00:/bin/bash

La información deseada la encontramos en la última línea del fichero, puesto que nuestro usuario ha sido el último en añadirse. Analicemos el contenido de esta línea:

• user00 es el nombre del usuario, que ya sabíamos porque lo hemos creado nosotros mismos.

• x es su contraseña y se encuentra en el fichero de shadow,/etc/shadow. • 1000 es su número de identificación como usuario (UID).

• 1000 es el número de identificación de su grupo (GID). • ,,, no tiene ningún comentario asociado.

/home/user00 es su directorio home, tal y como era de esperar, ya que todos los usuarios tienen su home en /home/login .

/bin/bash, el shell con el que se encontrará el usuario al iniciar la sesión, es el bash, el mismo que hemos utilizado hasta ahora.

La pregunta que nos formulamos inmediatamente ante estas informaciones es relativa a la contraseña del usuario. Debemos consultar el fichero shadow, porque así lo indica el fichero /etc/passwd. De paso, introduciremos un con- cepto nuevo, el de filtro, que en este caso se materializa con la orden grep (ge-

neral regular expression processor). Los filtros son herramientas extremadamente

potentes y muy usadas en UNIX, y su campo de acción se extiende mucho más allá de lo que comúnmente se entiende por filtro. En este caso, pasaremos, mediante una tubería o pipe, la salida de cat al comando grep, para que este muestre en pantalla aquellas líneas que contengan la palabra que le pasamos como parámetro, user00:

root@ubuntu:/etc# cat shadow | grep user00

user00:$6$yXGCTC/o$5aSP..kJ2Nm7MJkDz7...:15489:0:99999:7:::

A partir de ahora no nos hemos de preocupar más: el segundo campo nos in- dica que nuestro usuario no tiene contraseña. Si la hubiera tenido, no la po- dríamos conocer, ya que tal y como se ha explicado, las contraseñas se guardan encriptadas y la encriptación es unidireccional. Pero esto tampoco nos debe- ría preocupar, puesto que el usuario root, mediante la orden passwd, puede cambiar la contraseña de cualquier otro usuario.

Así pues, lo único que realmente hemos de intentar es no olvidar la contraseña del usuario root; a pesar de que en este caso no la conocemos, el fichero shadow nos indica que sí tiene contraseña, pero no la podemos saber. Como se ha dicho, la contraseña se cifra y se guarda. Continuamos con nuestra búsqueda sobre las propiedades de nuestro nuevo usuario. El fichero /etc/group nos ayudará a saber a qué grupos pertenece el usuario exactamente:

root@ubuntu:/etc# cat group | grep user00 user00:x:1000:

root@ubuntu:/etc# cat group | grep 1000 user00:x:1000:

Con la primera línea de órdenes nos preguntamos si /etc/group tiene alguna referencia explícita a user00 (también se podría haber hecho mediante la or- den groups: groups user00). Con la segunda buscamos el reverso del grupo 1000, grupo primario de user00 según /etc/passwd. Así pues, ya podemos

afirmar que nuestro nuevo usuario pertenece a un solo grupo, y que este es user00. El fichero /etc/group también se puede editar para añadir usuarios a grupos y crear grupos nuevos, pero hay que remarcar que, en ningún caso, en el campo de usuarios pertenecientes a un grupo en concreto se puede poner el nombre de ningún otro grupo con la intención de añadir todos sus usuarios al primero. Pero esta práctica no es demasiado recomendable, puesto que hay órdenes específicas para trabajar con grupos (newgrp, addgroup, etc.). Queda solo una última cuestión por comprobar: si hacemos una lista de los contenidos de /home/, veremos que el subdirectorio /user00/ existe. Pero ¿qué pasaría si en lugar de usar el comando adduser se hubiese utilizado el comando useradd? Que el directorio home del usuario no existiría y, por tan- to, se debería crear manualmente con los siguientes comandos:

root@ubuntu:/etc# mkdir /home/user00

root@ubuntu:/etc# chown user00 -R /home/user00 root@ubuntu:/etc# chgrp users -R /home/user00 root@ubuntu:/etc# cd /home

root@ubuntu:/etc# la total 0

drwxr-xr-x 5 root root 100 Mar 4 08:12 . drwxrwxrwt 4 root root 80 Mar 4 08:35 ..

drwxr-xr-x 2 ubuntu ubuntu 40 Mar 4 08:35 ubuntu drwxr-xr-x 2 root root 40 Mar 4 08:35 root drwxr-xr-x 2 user00 users 60 Mar 4 08:12 user00

Ha llegado el momento de entrar en el sistema como nuevo usuario. Lo hare- mos mediante la orden su, la cual abre un proceso hijo con un login con el usuario que le hayamos pasado. Como root podemos utilizar siempre este mecanismo para entrar como otro usuario sin necesidad de conocer su con- traseña, puesto que al ejecutar su como root este no es necesario.

root@ubuntu:/etc# su user00 user00@ubuntu:/etc$

En primer lugar, hemos de señalar el cambio de aspecto del prompt. Hemos de- jado de ser usuario root, para pasar a ser user00, por lo que hemos perdido los privilegios de root, hecho que se manifiesta por el cambio del último carácter del prompt. Podemos acceder ahora a entrar en nuestro directorio home, crea- mos un fichero y cambiamos los atributos para que tan solo user00 lo pueda leer, ejecutar y escribir. De momento, el permiso de ejecución no tiene mucho sentido para nosotros, ya que no sabemos todavía crear ficheros ejecutables, pero es bueno conocerlo por adelantado para cuando lo necesitemos:

user00@ubuntu:/etc$ cd

user00@ubuntu:$ echo "only user00 can read, write and execute this file." > user00file user00@ubuntu:$ chmod 700 user00file

Para salir del usuario en el que se ha entrado con el comando su, solo hay que llamar al comando exit para volver al usuario anterior.

Si estamos utilizando el modo gráfico, para editar las características de los usua- rios, así como para darles de alta o baja, se deberá emplear la aplicación user

accounts, que nos permite hacer casi lo mismo que en el caso de los progra-

mas que funcionan en el shell. En la siguiente figura podemos ver cómo en el entorno gráfico también sale el usuario que se ha creado en el entorno de consola, puesto que el usuario user00 es válido en los dos casos y lo podemos modificar desde los dos lugares.

Figura 20

In document GNU/Linux básico. Jordi Serra Ruiz PID_ (página 69-72)