Usuarios, Grupos y Grupos Privados de Usuarios

La gestión de usuarios y grupos ha sido tradicionalmente tediosa, pero Red Hat Linux posee unas pocas herramientas y convenciones que facilitan el manejo de usuarios y grupos.

Aunque se puede utilizar useradd para crear un nuevo usuario desde la línea de comandos, la forma más fácil de gestionar usuarios y grupos es a través de Linuxconf (véase Capítulo 3).

A continuación, se argumentará sobre la forma básica de gestionar usuarios y grupos.

Usuarios Estándar

En Tabla 2-1, puede econtrarse la lista de usuarios estándar creada por el proceso de instalación. (esencialmente el archivo /etc/passwd). El ID de Grupo ID (GID) en esta tabla es el primary group para el usuario. Véase la sección de nombre Grupos Privados de Usuarios para aprender sobre como se usan los grupos.

Tabla 2-1. Usuarios Estándar

Usuario UID GID Directorio raíz Shell
root 0 0 /root /bin/bash
bin 1 1 /bin  
daemon 2 2 /sbin  
adm 3 4 /var/adm  
lp 4 7 /var/spool/lpd  
sync 5 0 /sbin /bin/sync
shutdown 6 0 /sbin /sbin/shutdown
halt 7 0 /sbin /sbin/halt
mail 8 12 /var/spool/mail  
news 9 13 /var/spool/news  
uucp 10 14 /var/spool/uucp  
operator 11 0 /root  
games 12 100 /usr/games  
gopher 13 30 /usr/lib/gopher-data  
ftp 14 50 /var/ftp  
nobody 99 99 /  

Grupos Estándar

En Tabla 2-2, puede encontrarse la lista de grupos estándar creada por el proceso de instalación (esencialmente el archivo /etc/group file).

Tabla 2-2. Grupos Estándar

Grupo GID Miembros
root 0 root
bin 1 root, bin, daemon
daemon 2 root, bin, daemon
sys 3 root, bin, adm
adm 4 root, adm, daemon
tty 5  
disk 6 root
lp 7 daemon, lp
mem 8  
kmem 9  
wheel 10 root
mail 12 mail
news 13 news
uucp 14 uucp
man 15  
games 20  
gopher 30  
dip 40  
ftp 50  
nobody 99  
usuarios 100  

Grupos Privados de Usuarios

Red Hat Linux utiliza un esquema de grupo privado de usuarios (UPG, del inglés "User Private Group"), que permite que el manejo de grupos UNIX sea mucho más fácil. El esquema UPG no añade o cambia nada al modo tradicional UNIX de manejar grupos. Simplemente ofrece una nueva convención para ello. Cada vez que se crea un nuevo usuario, por defecto, se le asigna un único grupo. El esquema funciona de la siguiente manera:

Grupo Privado de Usuarios

Cada usuario tiene su propio grupo primario, del cual sólo él es miembro.

umask = 002

La máscara de permisos, umask, tradicional UNIX es 022, lo que elimina de la posibilidad de que otros usuarios y otros miembros del grupo primario del usuario eliminen ficheros del usuario. Puesto que cada usuaria tiene su propio grupo privado en el esquema UPG, esta "protección de grupo" no es necesaria. Una umask de 002 prohibirá a los usuarios modificar modificar ficheros privados de otros usuarios. El valor de umask se asigna en /etc/profile.

activar el bit setgid en directorios

Si se activa el bit setgid en un directorio (con chmod g+s directorio), los archivos creados en ese directorio tendrán su propio grupo puesto al grupo del directorio.

En la mayoría de las organizaciones de IT (del inglés Information Technologies) se crea un grupo para cada proyecto y se asigna a la gente a los grupos en los que deben estar. Gestionar los archivos ha sido tradicionalment difícil, porque cuando alguien crea un archivo, este pertenece al grupo primario al que pertenezca el creador. Cuando una misma persona trabaja en multiples proyectos, la asignación adecuada de grupo a los ficheros adecuados se vuelve difícil. Con el esquema UPG, la asignación de grupos proyecto a proyecto es automática, lo que permite gestionar grupos de proyectos de manera simple.

Suponiendo un proyecto de nombre devel, con muchos usuarios editando los ficheros de devel en un directorio devel. Se crea un grupo devel, chgrp el directorio devel a devel, y se añaden todos los usuarios devel al grupo devel. Ahora, todos los usuarios devel podrán editar los archivos devel y crear nuevos archivos en el directorio devel, y estos archivos siempren tendrán su grupo devel. Y por tanto siempre serán editable por otros usuario devel.

Si se tienen múltiples proyectos como devel, y usuarios que trabajan en multiples proyectos, estos usuarios nunca tendrán que cambiar su umask o grupo cuando cambien de proyecto. El bit setgid en el directorio principal de cada proyecto "selecciona" el grupo adecuado.

Puesto que el directorio raíz de cada usuario pertenece al usuario y a su grupo privado, es seguro dejar activado el bit setgid en el directorio raíz del usuario. Sin embargo, por defecto, los archivos se crean con el grupo primario del usuario, así que el bit setgid resulta redundante.

El concepto del Grupo Privado de Usuario

Aunque UPG no es nuevo en Red Hat Linux 7.0, mucha gente tendrá preguntas sobre el, como por qué es UPG necesario. A continuación se presenta el concepto del esquema.

  • Para que un grupo de usuarios trabaje en un conjunto de ficheros en, por ejemplo, el directorio /usr/lib/emacs/site-lisp. Es razonable que unas cuantas personas acedan al directorio, pero no todo el mundo.

  • Se teclea:
    chown -R root.emacs /usr/lib/emacs/site-lisp
                    
    y se añaden a los usuarios adecuados al grupo.

  • Para permitir a los usuarios crear archivos en el directorio se teclea:
    chmod 775 /usr/lib/emacs/site-lisp
                    

  • Pero al crear un nuevo archivo, se lee asigna el grupo por defecto del usuario (usually users). Para evitar esto se teclea:
    chmod 2775 /usr/lib/emacs/site-lisp
                    
    lo que hace que todo lo que se cree en el directorio tenga el grupo "emacs".

  • El nuevo archivo necesita modo 644 para que otro usuario del grupo emacs pueda editarlo. Para esto se pone la umask por defecto a 002.

  • Todo esto funciona bien, salvo que si el grupo por defecto es "users", todos los archivos creados en el directorio raíz del usuario serán sobreescribibles por cualquier miembro del grupo "users" (habitualmente todos los usuarios).

  • Para solucionar esto, se hace que cada usuario tenga un "grupo privado" como grupo por defecto.

En este punto, al hacer la umask por defecto 002 y dar a todo el mundo un grupo privado por defecto, se pueden crear fácilmente grupos de los que los usuarios pueden sacar provecho sin realizar ningún tipo de magia. Simplement se crea el grupo, se añaden los usuarios, y se ejecuta el comando chown y chmod en los directorios del grupo.