Red Hat Linux 7.1: Official Red Hat Linux Reference Guide | ||
---|---|---|
Anterior | Capítulo 2. Usuarios y grupos | Siguiente |
Red Hat Linux utiliza un esquema de grupo privado de usuario (UPG), que hace que los grupos UNIX sean más fáciles de usar. El esquema UPG no añade ni cambia nada en el modo estándar de UNIX en el manejo de grupos; simplemente ofrece una nueva convención. Siempre que cree un usuario nuevo, por defecto, éste pertenece a un único grupo. El esquema funciona de la siguiente manera:
Cada usuario tiene un grupo primario; el usuario es el único miembro del grupo.
La máscara de permisos umask para sistemas UNIX es habitualmente de 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 usuario 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 ficheros privados de otros usuarios. El valor de umask se asigna en /etc/profile
Si activa el bit setgid en un directorio (con chmod g+s directorio), los archivos creados en ese directorio tendrán su propio grupo en el 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 tradicionalmente difícil, porque cuando alguien crea un archivo, éste pertenece al grupo primario al que pertenezca el creador. Cuando una misma persona trabaja en múltiples proyectos, es difícil asociar un grupo adecuado con los ficheros adecuados. Con el esquema UPG, la asignación de grupos a archivos creados en ese directorio es automática, lo que permite gestionar grupos de proyectos de manera simple.
Suponiendo que estemos ejecutanto un proyecto llamado devel, con muchos usuarios que modifican los ficheros devel en un directorio devel. Cree un grupo llamado devel, añada el directorio devel (chgrp) y todos los usuarios del proyecto a devel.
Puede añadir un usuario a un grupo usando Linuxconf (consulte la Official Red Hat Linux Customization Guide). Si prefiere usar la línea de comandos, utilice /usr/sbin/groupadd groupname command> para crear un grupo. El comando /usr/bin/gpasswd -a loginname groupname añadirá un loginname de usuario a un grupo. (Consulte groupadd y la páginas de manual gpasswd si necesita más información sobre sus opciones.) El archivo /etc/group contiene la información de grupo para su sistema.
Si ha creado el grupo devel, ha añadido usuarios al grupo devel, cambiado el grupo por el directorio devel en el grupo devel y activado el bit de setgid para el directorio devel, todos los usuarios devel serán capaces de conservar su estatus de grupo devel, para que otros usuarios devel sean capaces de modificarlos.
Si se tienen múltiples proyectos como devel y usuarios que trabajan en múltiples 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.
Aunque UPG ha existido en Red Hat Linux durante algún tiempo, mucha gente todavía tiene preguntas, tales como, por qué es necesario UPG. A continuación observe el 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 accedan al directorio, pero no todo el mundo.
En primer lugar cree emacs:
/usr/sbin/groupadd emacs |
A continuación, teclee:
chown -R root.emacs /usr/lib/emacs/site-lisp |
para asociar los contenidos del directorio con el grupo emacs y añadir usuarios adecuados al grupo:
/usr/bin/gpasswd -a <username> emacs |
Para permitir a los usuarios crear archivos en el directorio teclee:
chmod 775 /usr/lib/emacs/site-lisp |
Cuando un usuario crea un nuevo archivo, se le asigna el grupo del grupo del usuario por defecto (habitualmente users). Para evitarlo, teclee:
chmod 2775 /usr/lib/emacs/site-lisp |
Para que un usuario del grupo emacs pueda modificar un archivo nuevo, es necesario que éste sea creado con la modalidad 664. Para tal propósito, debe utilizar unmask por defecto.
Todo esto funciona bien, salvo que si el grupo por defecto es "usuarios", todos los archivos creados en el directorio raíz del usuario serán sobreescribibles por cualquier miembro del grupo "usuarios" (habitualmente todos los usuarios).
Para solucionar esto, se hace que cada usuario tenga un "grupo privado" como grupo por defecto.
Llegados a este punto, al hacer la umask 002 por defecto 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. Simplemente se crea el grupo y se añaden los usuarios, se ejecuta el comando chown y chmod en los directorios del grupo.