====== Grupos y usuarios en Debian GNU/Linux ======
La mayoría de las distribuciones de GNU/Linux por defecto crean varios grupos de usuarios con permisos específicos para ciertas funciones. A continuación se incluye un listado de algunos grupos y usuarios que suelen encontrarse en Debian GNU/Linux. ((Basado parcialmente en un [[http://www.wwclass.com/doc/base-passwd/users-and-groups.html|sitio]] extraoficial.))
===== Listado de grupos =====
^ Grupo ^ Función / Observaciones ^
| **root** | Superusuario: acceso pleno al sistema. Normalmente solo el usuario ''root'' debería pertenecer a este grupo. |
| **adm** | Monitoreo de tareas del sistema. Permite utilizar ''xconsole'' y leer archivos de ''/var/log'' sin tener que utilizar los comandos ''su'' o ''sudo''. Usualmente para administradores. El nombre del grupo proviene de que ''/var/log'' inicialmente fue ''/usr/adm'' y posteriormente ''/var/adm'' |
| **audio** | Permite el acceso a los dispositivos de audio. |
| **backup** | Permitir realizar salvas y restauras sin otorgar a un usuario premisos de root. |
| **bin** | Presente por motivos de compatibilidad con aplicaciones obsoletas. Las nuevas aplicaciones no deben utilizar este grupo. |
| **cdrom** | Permite el acceso a una unidad óptica. |
| **daemon** | Servicios que necesitan escribir en el disco. Por motivos de seguridad, es preferible que cada servicio tenga su propio grupo. |
| **dialout** | Acceso directo a los puertos de serie. Los miembros de este grupo pueden reconfigurar el modem, marcar a cualquier parte, etc. |
| **dip** | Permite utilizar herramientas como ''pppd'', ''pon'' y ''poff'' para realizar conexiones con otros sistemas, utilizando los archivos de configuración predefinidos en el directorio ''/etc/ppp/peers''. El nombre del grupo signigica "Dialup IP". |
| **disk** | Acceso //directo// a los discos. Prácticamente equivalente al acceso que tiene ''root'' sobre los discos. Un usuario normalmente no debería pertenecer a este grupo, o podría hacer algo indebido como ''cat /dev/zero > /dev/sda''. |
| **fax** | Permite enviar o recibir faxes. |
| **floppy** | Permite el acceso a una unidad de disquetes. |
| **games** | Utilizado por algunos juegos para guardar las puntuaciones. |
| **gdm** | Utilizado por GDM (Gnome Display Manager). |
| **gnats** | Utilizado por ''gnats''. |
| **haldaemon** | Utilizado por la capa de abstracción de hardware. |
| **halt** | Permite iniciar sesión para apagar el sistema. |
| **irc** | Utilizado por los servicios IRC. (Se requiere un usuario estático por un bug en ''ircd'') |
| **klog** | Utilizado por ''klogd'', la bitácora del kernel. |
| **kmem** | Para programas que necesitan acceso directo de lectura de la memoria del sistema. Este grupo puede leer ''/dev/kmem'' y otros archivos similares. Es prácticamente una reliquia de BSD. |
| **list** | Para gestión de listas de correo. Algunos programas de este tipo también utilizan un usuario con el mismo nombre. |
| **lp** | Acceso directo al puerto paralelo. Tradicionalmente utilizan este grupo los servicios de impresión. |
| **lpadmin** | Permite agregar, modificar y quitar impresoras de foomatic, cups y posiblemente otras bases de datos de impresoras. |
| **mail** | Escritura en ''/var/mail''. Utilizado por los MTA y MUA. |
| **majordom** | Utilizado históricamente por Majordomo. No se instala en nuevos sistemas. |
| **man** | Utilizado a veces por el programa ''man'' para escribir en ''/var/cache/man''. |
| **messagebus** | Utilizado por el servicio dbus (dbus-daemon-l) |
| **news** | Escritura en las carpetas de noticias. Utilizado por servicios y otros programas de noticias (protocolo nntp).|
| **nogroup** | Utilizado por servicios que no requieren ser propietarios de ningún archivo. Típicamente combinado con el usuario ''nobody''. |
| **operator** | Existente solo por motivos históricos para notificar a los operadores que han iniciado sesión. Para aumentar los privilegios es preferible utilizar la utilidad sudo. |
| **plugdev** | Permite el acceso a los dispositivos extraíbles aunque no estén configurados en ''/etc/fstab''. Útil para usarios locales que necesitan insertar memorias USB, etc. Utilizado por el programa pmount (que siempre monta los dispositivos extraíbles con las opciones ''nodev'' y ''nosuid''). |
| **postfix** | Utilizado por el MTA Postfix. |
| **postgres** | Gestión de las bases de datos de PosgreSQL. Usualmente solo utilizado por el usuario ''postgres'' |
| **proxy** | Para servicios (usualmente servicios proxy) que no tienen id de usuario dedicadas y necesitan ser propietarios de archivos. Usualmente utilizado por ''squid'' y ''pdnsd''. |
| **saned** | Añadido por ''sane-utils''. Parece ser poco utilizado. |
| **sasl** | Permite la escritura en ''/etc/sasldb'' y/o ''/etc/sasldb2'', que se utilizan para la autentificación con sasl. Usualmente utilizado para autentificación por servidores IMAP, POP, y SMTP. |
| **scanner** | Permite utilizar scanners. |
| **shadow** | Permite la lectura de ''/etc/shadow''. Utilizado por algunos programas que necesitan acceder a este archivo. |
| **shutdown** | Permite iniciar sesión para apagar el sistema. |
| **src** | Propietario del código fuente, incluyendo los archivos de ''/usr/src''. Puede utilizarse para ofrecerla a un usuario la capacidad de gestionar el código fuente. |
| **ssh** | Para prevenir ataques de ptrace. Utilizado por ssh-agent. |
| **staff** | Permite trabajar en ''/usr/local'', ''/var/local'' y ''/home''. Usualmente para administradores de confianza. |
| **sudo** | Los miembros de este grupo no necesitan escribir sus contraseñas al utilizar ''sudo''. Ver ''/usr/share/doc/sudo/OPTIONS''. |
| **sync** | Permite iniciar sesión para sincronizar el sistema. Usualmente utilizado por el usuario sync (con shell ''/bin/sync'') |
| **sys** | Presente por motivos de compatibilidad. |
| **syslog** | Utilizado por ''syslog'', la bitácora de propósito general. |
| **tape** | Permite el acceso a una unidad de cinta. |
| **tty** | Utilizado por ''write'' y ''wall'' para escribir en las tty de otros usuarios. Los dispositivos ''tty'' y ''/dev/vcs'' pertenecen a este grupo. |
| **uucp** | Utilizado por el subsistema UUCP. |
| **users** | Para agrupar nuevos usuarios. Ver la nota al final de este artículo. |
| **utmp** | Permite escribir en ''/var/run/utmp'', ''/var/log/lastlog'', y archivos similares. Utilizado por algunos emuladores de terminales. |
| **video** | Permite acceder a dispositivos de video. |
| **voice** | Voicemail. Util para sistemas que utilizan modems como contestadoras. |
| **wheel** | Permite utilizar el comando ''su''. Deshabilitado por defecto (ver ''/etc/pam.d/su'' para más detalles, así como la Sección 9.2.2 en la referencia de Debian). |
| **www-data** | Para escritura de datos por servidores web. El usuario ''www-data'' no debería ser el //propietario// del contenido web, o un servidor comprometido permitiría reescribir un sitio web. |
Para conocer qué archivos en su sistema pertenecen a un determinado grupo, puede ejecutar un comando como el siguiente:
find / -xdev -group nombredelgrupo
(El parámerto ''-xdev'' evita que se crucen puntos de montaje).
===== Listado de usuarios sin un grupo correspondiente =====
Algunos usuarios no tienen un grupo correspondiente, sino que utilizan otro de los anteriormente mencionados.
^ Usuario ^ Función / Observaciones ^
| **sshd** | Usuario con pocos privilegios utilizado por sshd para comunicarse con la red antes de una autentificación exitosa. |
| **fetchmail** | Utilizado por el programa ''fetchmail''. |
| **cupsys** | Utilizado por CUPS (Common Un*x Printing System). Pertenece al grupo lp. |
Para conocer a qué grupos pertenece un determinado usuario, puede ejecutar un comando como el siguiente:
id nombredelusuario
===== Notas =====
En Debian GNU/Linux, al crearse un nuevo usuario, por defecto también se crea un nuevo grupo con el mismo nombre, de modo que con la umask adecuada (0002) y el bit SETGID establecido en el directorio de un proyecto, automáticamente se le asigna el grupo correcto a los archivos que se creen en ese directorio.
Puede parecer que sería más eficiente que todos los nuevos usuarios perteneciesen al grupo ''users'' como hacía tradicionalmente UN*X, pero esto dificulta la gestión de los permisos cuando un mismo usuario trabaja en múltiples proyectos.
No obstante, se puede cambiar este comportamiento modificando ''/etc/adduser.conf''. Se debe cambiar el valor de la variable ''USERGROUPS'' a 'no', de modo que no se cree un nuevo grupo al crear un usuario, y también se debe cambiar el valor de ''USERS_GID'' al GID del grupo al que pertenecerán los usuarios. ((Tomado de las [[http://www.debian.org/doc/manuals/securing-debian-howto/ch12.en.html | preguntas más frecuentes]] del manual para asegurar Debian.))
===== Atribuciones =====
* **Autor:** Hugo Florentino