Derechos de los usuarios
Gestionar los usuarios
La gestión de derechos es un punto crucial de la administración de su sistema operativo Ubuntu. Está fuertemente ligado al sistema de archivos (recuerde que Unix está construido alrededor de sistemas de archivos) y es por eso por lo que aquí encontrará muchas operaciones en modo consola.
Un error en los derechos y es toda la seguridad de su instalación la que queda comprometida.
1. Principio
a. Linux en general
Los usuarios se identifican por:
-
Un login o nombre de conexión.
-
Un UID (User ID), identificador numérico único del usuario, codificado en 32 bits.
-
Un GID (Group ID), identificador del grupo principal al que pertenece el usuario.
-
Varios otros grupos secundarios.
Esta información sobre la cuenta de un usuario se obtiene con el comando ID. En el ejemplo siguiente, el usuario tiene como uid 1000, y como gid, 1000. Pertenece a un gran número de grupos.
$ id
uid=1000(eni) gid=1000(eni)
grupos=1000(eni),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),10
9(lpadmin),124(sambashare)
Los usuarios tienen derechos sobre todo lo que les pertenece a ellos y a sus grupos.
Un comando se ejecuta con los derechos del usuario.
La información sobre las cuentas locales se almacenan en /etc/passwd y /etc/shadow. Los grupos están en /etc/group y /etc/gshadow.
La contraseña, cifrada, es el segundo campo de cada línea del archivo /etc/shadow. Solo el administrador puede leer el contenido de este archivo.
El administrador del sistema se llama root y lleva siempre el uid 0. Es el único, salvo el uso de mecanismos específicos, que puede ejecutar las tareas administrativas más importantes.
Para pasar a root, un usuario puede usar el comando su y escribir la contraseña de root para convertirse en administrador. Al cerrar el shell, root regresa a sus derechos predefinidos.
$ su
Contraseña: xxxxxxxx
#
b. Ubuntu en particular
A menos que instale Ubuntu en modo expert, se habrá dado cuenta de que:
-
En ningún momento introdujo la contraseña de la cuenta root.
-
Se creó una sola cuenta, la suya, la cual dispone de derechos específicos.
Este mecanismo utiliza los derechos de sudo. Es una característica de UNIX que permite dar derechos adicionales a los usuarios, en todo el sistema o en comandos específicos.
La cuenta que ha creado...
Derechos de los usuarios
El mecanismo que permite que el sistema sea multiusuario lleva a un acceso selectivo y a los niveles de protección de los archivos. El principio de base se enuncia entonces así: el propietario de un archivo define los derechos de acceso. Todo archivo o directorio en Ubuntu pertenece a un usuario y a un grupo.
1. Usuarios y atributos de archivos
a. Principios
En Ubuntu Linux, la identificación de los tipos de usuarios es:
-
El propietario del archivo, marcado como user.
-
El grupo al cual pertenece el propietario, marcado como group.
-
Los otros o el resto de los usuarios, marcado como other.
Para visualizar la pertenencia de un archivo, el comando ls con la opción -l (formato largo) muestra, para cada archivo, un conjunto de información asociada.
Ejemplo
touch prueba.txt
ls -l prueba.txt
El primer comando crea un archivo de texto vacío. El administrador ejecuta ambos comandos (recuerde que el creador del archivo es el propietario):
-rw-r--r-- 1 root root 0 sep 24 16:21 prueba.txt
El primer bloque de diez caracteres informa sobre el significado de los derechos:
-
La primera letra indica el tipo de archivo. Las más comunes son un guion (-) para el atributo de un archivo ordinario; una d para un directorio y una l para los enlaces simbólicos.
-
Las tres siguientes letras indican el propietario en orden: r o - (derecho de lectura o no), w o - (derecho de escritura o no), x o - (derecho de ejecución o no).
-
Las tres siguientes letras tienen exactamente el mismo significado que en el caso anterior, pero para el grupo.
-
Las tres últimas letras se aplican al resto de los usuarios.
El resto de la presentación muestra, respectivamente, el número de enlaces (esta noción ya se vio en el capítulo Uso de la línea de comandos, sección Gestión de archivos - Comandos de base), el propietario, el grupo al que pertenece, el tamaño en bytes, la fecha y la hora de la última modificación y, por último, el nombre del archivo.
Más precisamente:
-
En el caso de un archivo, el permiso de lectura (r) autoriza la visualización de su contenido, el permiso de escritura (w) autoriza la modificación de su contenido y el permiso de ejecución (x) autoriza (para archivos ejecutables, por supuesto)... lanzarlo.
-
En el caso...
Gestión avanzada de usuarios
1. Seguridad de las contraseñas
a. Cambiar la contraseña
El comando passwd permite gestionar las contraseñas, pero también los permisos de conexión y la mayoría de los campos presentes en /etc/shadow.
Cualquier usuario tiene derecho a cambiar su contraseña, dentro del período indicado en el campo 4 de /etc/shadow. La antigua contraseña se solicita por razones de seguridad (en particular, para evitar que una persona malintencionada cambie la contraseña de otra). La entrada no se muestra.
$ id
uid=1000(eni) gid=100(users) ...
$ passwd
Cambiando la contraseña de eni.
Contraseña actual de:
Nueva contraseña:
Vuelva a escribir la nueva contraseña:
passwd: Contraseña actualizada correctamente.
Los módulos PAM (Pluggable Authentication Module) pueden imponer restricciones más o menos severas para la elección de la contraseña: límite de longitud, no basada en una palabra del diccionario, etc. Vea lo que ocurre si intenta utilizar toto (demasiado corta), qwerty (demasiado simple) y Martine (diccionario) sucesivamente:
$ passwd
Cambiando la contraseña de eni.
Contraseña actual de:
Nueva contraseña:
Debe elegir una contraseña más larga
Nueva contraseña:
Bad: new password is too simple
Nueva contraseña:
Bad: based in dictionary word
passwd: Error de manipulación del testigo de autenticación
passwd; No se ha cambiado la contraseña
El usuario root tiene derecho a modificar las contraseñas de todos los usuarios del sistema sin necesidad de conocer la contraseña anterior y puede forzar el uso de una contraseña, aunque no esté validada por PAM.
Linux requiere una contraseña de 6 caracteres de forma predefinida. La configuración se realiza en el archivo /etc/pam.d/common-password.
# here are the per-package modules (the "Primary" block)
password [success=1 default=ignore] pam_unix.so obscure sha512
# here's the fallback if no module succeeds
password requisite pam_deny.so
# prime the stack with a positive return value if there isn't one already; ...
Puesta en práctica
1. Gestión de usuarios
En modo consola
Cambie al modo interactivo root.
Cree un nuevo grupo de usuarios llamado visitantes con groupid 1404.
Cree un nuevo usuario llamado invitado con userid 140401, que pertenezca al grupo creado anteriormente, forzando la creación de su directorio de login y su shell bash.
Despliegue las líneas correspondientes de los archivos de usuarios y grupos.
Modifique los derechos de este usuario forzando el cambio de contraseña a tres meses, con un período de gracia de una semana y un período de aviso de dos semanas.
Despliegue la línea correspondiente en el archivo de derechos.
Asígnele la contraseña welc0me.
Cree un nuevo usuario llamado intruso con userid 140402, que pertenezca al grupo creado anteriormente, forzando la creación de su directorio de login y su shell bash. Asígnele las mismas restricciones de caducidad de la contraseña que al usuario precedente. Atribúyale la contraseña de su elección.
Despliegue las dos últimas líneas de /etc/shadow. Observe las diferencias.
luc@Stuby:~$ sudo -i
[sudo] contraseña:
root@Stuby:~# groupadd -g 1404 visitantes
root@Stuby:~# useradd -m -u 140401 -g visitantes -s /bin/bash invitado
root@Stuby:~# tail -1 /etc/group
visitantes:x:1404:
root@Stuby:~# tail -1 /etc/passwd ...