Gestionar usuarios y grupos
Usuarios y grupos
La gestión de usuarios es un elemento clave en la administración de un servidor Red Hat Enterprise Linux.
En Linux, todo es un archivo. Desde los archivos propiamente dichos hasta el estado del procesador y la memoria; pasando por los dispositivos, todo está representado de un modo u otro en forma de archivos. Así que gestionar quién tiene acceso a estos archivos y cómo es una tarea esencial que hay que entender y dominar.
1. Usuarios, grupos y archivos
a. Usuarios, grupos y roles
Los usuarios pueden ser personas reales o aplicaciones. Las personas reales se conectan a la máquina, manipulan archivos y ejecutan programas. Las aplicaciones realizan tareas en la máquina, como, por ejemplo, trabajos de servicio, que consisten en responder a solicitudes o tareas de mantenimiento. Tanto los usuarios reales como las aplicaciones utilizan archivos y, por lo tanto, tienen una cuenta en la máquina.
Los grupos son conjuntos de usuarios, reales o aplicados, agrupados con un propósito común.
Por supuesto, dado que las máquinas funcionan con números, a las cuentas de usuario y de grupo se les asignan números:
-
Un userid, UID: el número de cuenta de un usuario.
-
Un groupid, GID: el número de cuenta de un grupo.
Diferentes roles
En los sistemas operativos UNIX/Linux en general, existe un usuario especial: el gestor de la máquina, que tiene una cuenta llamada root con un userid de 0 (cero).
El usuario root tiene plenos poderes sobre la máquina. Es el gestor, por lo que puede leer, modificar o borrar cualquier archivo, así como apagar o reiniciar la máquina. Pero su trabajo principal será realizar una gran variedad de tareas administrativas, de hecho, casi todo lo que se describe en este libro.
Por supuesto, el gestor de la máquina es una persona real, que tiene su propia cuenta, pero que tendrá que convertirse en el usuario root durante el tiempo necesario para realizar tareas administrativas en el sistema.
Los otros usuarios tienen poderes que se limitan a los archivos que poseen. La mayoría de las veces, estos archivos se almacenan en su directorio de usuario. Esto significa que un usuario malicioso podrá hacer muy poco daño al servidor Red Hat Enterprise Linux.
Es importante que todas las personas y aplicaciones reales tengan su propia cuenta de usuario para realizar...
Permisos de archivos y directorios
1. Presentación
En los sistemas UNIX/Linux, el acceso a los archivos es una combinación de dos tipos de elementos:
-
La manera en la que se accede a los archivos (y directorios): esto se define mediante derechos o permisos:
-
Lectura (representada por la letra r, read).
-
Escritura (representada por la letra w, write).
-
Ejecución (representada por la letra x, execute).
-
La persona que puede acceder a los archivos: para cada archivo y directorio, estos permisos se definen para tres categorías de usuarios:
-
El usuario propietario (representado por la letra u, user): es el propietario del archivo.
-
El grupo propietario (representado por la letra g, group): todos los usuarios que sean miembros de este grupo tendrán los permisos de acceso definidos para el mismo
-
Otros usuarios (representados por la letra o, others): aquellos que no son ni usuarios propietarios ni miembros del grupo propietario.
Tanto si se trata de un archivo como de una carpeta, los permisos de lectura, escritura o ejecución no realizan el mismo tipo de acción. Esto se explica con más detalle más adelante en este capítulo.
2. Mostrar permisos
Para ver los permisos establecidos sobre archivos y directorios, utilice el siguiente comando:
ls -l
Este comando devuelve este tipo de resultado:
[root@cobb etc]# ls -l
-rw-r--r--. 1 root root 813 24 ago 22:55 yum.conf
drwxr-xr-x. 2 root root 4096 24 ago 22:55 yum.repos.d
Este resultado contiene varios datos interesantes:
-
Tipo de archivo: la primera letra de la izquierda describe el tipo de archivo. A lo largo de este libro se examinan algunos de estos archivos:
-
-: archivo ordinario.
-
d: directorio.
-
l (link): vínculo o enlace simbólico.
-
s (socket): canal de comunicación.
-
p (pipe): pipe (flujo de datos entre dos procesos) con nombre.
-
b (block): archivo de dispositivo en modo bloque.
-
c (character): archivo de dispositivo en modo carácter.
-
Permisos: las nueve letras siguientes son en realidad tres «paquetes» de tres letras que definen los permisos del usuario propietario, del grupo propietario y de otros usuarios.
Si la letra está presente, el usuario tiene permisos (de lectura, escritura, ejecución). En caso contrario, la letra se sustituye por un guion.
-
Después de estos nueve caracteres (los permisos), aparece...
Gestión avanzada de discos y usuarios
1. Cuotas de disco por usuario o grupo
El uso del espacio en disco puede ser controlado por el gestor. Se pueden establecer límites para determinados usuarios y grupos, así como recibir avisos si el disco está saturado.
Por ejemplo, se puede definir el espacio utilizado por los usuarios para sus archivos personales, correos electrónicos, documentos, etc. y el espacio utilizado por un grupo para un proyecto.
La gestión de cuotas se puede configurar en cada partición. Esto ilustra claramente la importancia de establecer un sistema de particionamiento adaptado al uso del servidor en la empresa.
Por ejemplo, ¿por qué no poner el directorio /home en una partición separada con cuotas de usuario y el resto del sistema sin cuotas?
La puesta en marcha de cuotas implica los siguientes pasos:
-
Habilitar el mecanismo de cuotas para la partición en /etc/fstab y volver a montar la partición.
-
Analizar el uso del disco y generar una base de datos de cuotas.
-
Asignar cuotas a usuarios y a grupos.
-
Activar las cuotas.
a. Activar cuotas en los sistemas de archivos
Para habilitar las cuotas en una partición, se debe editar el archivo /etc/fstab y agregar las opciones usrquota y grpquota para el sistema de archivos en cuestión (separadas por comas).
Por ejemplo:
/dev/sdb2 /
home ext4 defaults,usrquota,grpquota 1 1
A continuación, se deberá volver a montar la partición. Puede utilizar mount con la opción -o remount, que desmonta y vuelve a montar en el proceso. A continuación, compruebe que la partición se ha vuelto a montar utilizando las nuevas opciones.
Por ejemplo:
[root@cobb ~]# mount -o remount /home
[root@cobb ~]# mount
/dev/sdb2 on /home type ext4 (rw,usrquota,grpquota)
b. Analizar el disco
Después, se necesita analizar el sistema de archivos para saber cómo se está utilizando, es decir, cuántos datos están siendo utilizados, por qué usuarios y por qué grupos.
Para ello, utilice el siguiente comando:
quotacheck -cug <punto_de_montaje>
-
-c (create): crea el archivo de análisis para la partición montada en el directorio.
-
-ug: activa el análisis para usuarios y grupos.
Por ejemplo:...
Otros tipos de autenticación
1. PAM: módulos de autenticación
a. Introducción
PAM (Pluggable Authentication Modules, módulos de autenticación enchufables) nació de la necesidad de desarrollar métodos de autenticación flexibles para el sistema Linux.
Al principio, los métodos de autenticación eran estáticos: el procedimiento de autenticación mediante contraseña se escribía directamente en los programas.
Cuando aparecieron otros métodos de autenticación, esto se convirtió en un problema. Hubo que poner en marcha un método dinámico para integrar los nuevos métodos de autenticación.
Aunque el gestor rara vez necesite intervenir en PAM, es útil saber cómo funciona.
b. Funcionamiento
PAM es una interfaz entre los programas que requieren autenticación y los medios de autenticación:
1. Los programas están destinados a las PAM con funciones normalizadas.
2. PAM convierte estas solicitudes según los tipos de autenticación configurados.
3. Los programas que requieren autenticación envían solicitudes a PAM que se clasifican en cuatro categorías (cuatro mecanismos):
-
auth: garantizar una autenticación real, solicitando y verificando, de ser necesario, una contraseña; también definir «certificados de identidad» como la pertenencia a un grupo o «tickets» kerberos.
-
account: comprobar si la cuenta solicitada está disponible (si la cuenta no ha caducado, si el usuario está autorizado a conectarse a esta hora del día, etc.).
-
password: actualizar el token de autenticación (normalmente una contraseña), ya sea porque ha caducado o porque el usuario desea cambiarla.
-
session: crear y cerrar la sesión. Se activa una vez que se autoriza a un usuario a utilizar su cuenta. Pone a disposición del usuario determinados recursos y servicios, como, por ejemplo, configurar su directorio personal, poner a disposición...
Seguridad de la gestión: sudo
1. Presentación
El usuario root es el gestor de la máquina. Tiene plenos permisos y puede hacer lo que quiera en la máquina, como borrar archivos de solo lectura. Esto demuestra lo cuidadoso que hay que ser cuando se adquieren permisos de gestor, haciendo un su - por ejemplo.
Sin embargo, a veces se abusa de los permisos de gestor. Existen dos prácticas peligrosas en las empresas que se deben evitar:
-
Utilizar la cuenta root para todas las tareas, incluso las que son responsabilidad de un usuario:
-
Muchos gestores utilizan la cuenta root como su cuenta personal o, lo que es peor, se conectan a la interfaz gráfica de usuario como usuario root.
-
Los errores de funcionamiento son frecuentes y, cuando se cometen como root, pueden ser devastadores para el sistema.
-
Distribuir la contraseña de la cuenta root a cualquier persona que necesite realizar tareas administrativas en el servidor:
-
Las tareas administrativas requieren a veces la participación de varias personas.
-
Algunas personas necesitan a veces ejecutar comandos o acceder a archivos que están reservados al gestor.
-
Una solución: utilizar permisos de archivo y listas de control de acceso (lo más temporalmente posible).
-
Pero a veces no se tiene elección: hay que dar la contraseña de root.
-
Se aplica la siguiente regla: «la seguridad de una contraseña es inversamente proporcional al número de personas que la conocen». De hecho, distribuir la contraseña root puede tener consecuencias desafortunadas y debe evitarse a toda costa.
-
Si se cometen errores, no sabemos quién es el responsable, ya que todos utilizan la misma cuenta.
El mecanismo sudo (super-user do, superusuario hace) resuelve estos problemas si se utiliza correctamente. Consiste en:
-
Otorgar permisos de gestor a determinados usuarios bajo ciertas condiciones.
-
Los usuarios deben escribir el comando sudo antes de realizar cualquier tarea administrativa.
-
Desactivar la cuenta de gestor: nadie podrá conectarse a ella.
Las ventajas de utilizar sudo son:
-
Los usuarios no tienen que recordar una contraseña adicional, que pueden olvidar fácilmente. Algunos usuarios que han activado la cuenta root anotan la contraseña en un trozo de papel, para poder encontrarla de nuevo si la olvidan.
-
Esto evita el comportamiento «puedo hacer cualquier cosa en mi máquina»....