Al igual que muchas tareas y deberes de los administradores de sistemas, la administración de cuentas de usuario no es solo una cosa, ni existe en el vacío. La administración de cuentas de usuario es un aspecto de trabajo continuo y tiene muchas facetas:creación de cuentas, eliminación de cuentas, manipulación de permisos, caducidad de cuentas, establecimiento de estándares de contraseñas, cumplimiento de seguridad, cumplimiento de cambios de contraseña y manipulación de UID y GID para mantener un sistema organizado y soportable. La primera parte se centró en los comandos útiles. Este artículo actual trata sobre la gestión de los ID de usuario (UID) y los ID de grupo (GID).
Introducción a UID y GID
De forma predeterminada, los sistemas Linux asignan automáticamente UID y GID a las nuevas cuentas de usuario en orden numérico a partir de 1000. En otras palabras, si crea una nueva cuenta de usuario durante la instalación, tendrá UID =1000 y GID =1000, como se muestra a continuación:
khess:x:1000:1000:Ken Hess:/home/khess:/bin/bash
La teoría detrás de esta asignación arbitraria es que todo lo que esté por debajo de 1000 está reservado para cuentas del sistema, servicios y otras cuentas especiales, y los UID y GID de usuarios normales permanecen por encima de 1000. Esta teoría se basa en la suposición de que 999 números de cuenta menos algunos pre- los asignados serán más que suficientes para satisfacer la mayoría de los sistemas durante muchos años. Como administrador de Linux durante más de 20 años, personalmente nunca me he quedado sin esos primeros números de cuenta del sistema 999.
La cuenta raíz tiene el increíble privilegio de tener UID =0 y GID =0. Estos números son los que le dan a la cuenta raíz su poder abrumador. Si no me cree, cambie el nombre de la cuenta raíz a goonygoogoo
, o lo que elija, y luego cree una nueva cuenta de usuario llamada root
, lo que permite que el sistema le asigne el siguiente UID y GID disponible. Esta cuenta no tiene más poder que cualquier otra cuenta de usuario en el sistema. No es el nombre, sino el UID y el GID lo que le da poder a la cuenta de administración. Para probar aún más esta afirmación, asigne una cuenta de usuario de prueba con 0 para el UID y el GID, y ese usuario ahora es raíz, independientemente del nombre de la cuenta.
Como puede ver en la lista a continuación, a las cuentas de usuario (como se indicó anteriormente) se les asignan UID y GID en orden numérico desde 1000. El UID y el GID siempre coinciden para mantener las cosas organizadas:
khess:x:1000:1000:Ken Hess:/home/khess:/bin/bash
msmith:x:1001:1001::/home/msmith:/bin/bash
mjones:x:1003:1003:Mary Jones:/home/mjones:/bin/bash
jjones:x:1004:1004:John Jones:/home/jjones:/bin/bash
djones:x:1005:1005:Don Jones:/home/djones:/bin/bash
No hay magia en esta configuración. El sistema lo hace. No tengo que preocuparme por eso.
Pero, ¿qué sucede si sus políticas son diferentes con respecto a la información de usuarios y grupos? Es posible que su empresa quiera que se asignen UID y GID en función de la identificación del empleado o algún otro identificador único (con suerte, no el número de seguro social, aunque he visto que este número se usa en la práctica). O, ¿qué sucede si desea asignar GID específicos en función de los roles? en lugar de agregar usuarios a un GID en /etc/group
? Bueno, es bastante fácil hacer algo de esto con useradd
comando de mi artículo anterior sobre este tema, que cubría los conceptos básicos de administración de cuentas de usuario.
La siguiente es la lista de usuarios de /etc/group
:
khess:x:1000:
msmith:x:1001:
mjones:x:1003:
jjones:x:1004:
djones:x:1005:
Personalizar UID y GID
Tradicionalmente, los administradores que desean agregar un usuario a grupos no principales lo hacen en el momento de la creación de la cuenta, usando el useradd
herramienta con la -G
cambiar. Asegúrese de enumerar todos los grupos secundarios después de -G
interruptor, separados por comas sin espacios. El siguiente comando permite que el sistema elija el UID y el GID principal del siguiente número disponible, pero agrega el usuario jdoe
al sysadmin
y helpdesk
grupos:
$ sudo useradd -G sysadmin,helpdesk jdoe
Si desea especificar el grupo principal con -g
switch, el grupo ya debe existir. Por ejemplo, si ingresa el siguiente comando:
$ sudo useradd -u 10600 -g 10600 -G sysadmin,helpdesk jdoe
Obtendrá el error "useradd:el grupo '10600' no existe", y el sistema no creará la cuenta. Si debe especificar el grupo, agregue el grupo primero:
$ groupadd 10600
$ sudo useradd -u 10600 -g 10600 -G sysadmin,helpdesk jdoe
Administración de permisos de grupo
Cuando los usuarios crean archivos, el propietario del usuario obtiene permisos de lectura (r) y escritura (w), el grupo obtiene permiso de lectura y otros obtienen permiso de lectura (rw-r--r--), o en términos numéricos, 644. El permiso de ejecución (x) no se otorga de forma predeterminada. Entonces, como administrador del sistema, si un miembro del grupo solicita que se coloque un permiso de ejecución en un archivo o grupo de archivos, conceda permiso de ejecución solo para el grupo:
$ sudo chmod g+x coolscript.sh
El usuario puede cambiar el permiso por sí mismo si es el propietario del usuario, pero a menudo no lo hará por temor a hacerlo incorrectamente. Solo el propietario del usuario o el usuario raíz pueden cambiar los permisos en un archivo, incluso si el grupo tiene permiso de escritura en el archivo. El permiso de escritura significa que un miembro del grupo puede editar o eliminar el archivo.
Asegúrese de que los directorios de grupos compartidos tengan acceso de escritura (permiso) para el grupo y que los archivos que los miembros del grupo deben modificar también tengan acceso de escritura. Algunos de ustedes que tienen un conocimiento de permisos más avanzado probablemente se pregunten por qué no menciono el chattr
(cambiar atributos) comando, y es una pregunta válida. El chattr
El comando está fuera del alcance de este artículo pero se tratará en un artículo posterior que se centra únicamente en chattr
y sus múltiples opciones.
Conclusión
Este artículo proporciona una breve cobertura de los atributos UID y GID y cómo manipularlos si es necesario. También cubrí un poco sobre los permisos de grupo. En un artículo futuro, cubriré el chattr
comando que le brinda opciones para evitar la eliminación accidental por parte de los miembros del grupo. Si desea seguir leyendo, hágalo con precaución. El chattr
El comando puede ser frustrante para los nuevos administradores que no están familiarizados con su sintaxis y las consecuencias de las opciones.
[¿Quiere probar Red Hat Enterprise Linux? Descárgalo ahora gratis. ]