Cuando un usuario entra en un sistema Unix, debe identificarse indicando su nombre de usuario (en inglés 'login') y su contraseña (en inglés 'password'). Si se equivoca al introducir su nombre o su contraseña, el sistema le denegará el acceso y no podrá entrar.
Una vez se haya identificado de forma satisfactoria, el usuario podrá utilizar el sistema y ejecutar todas las aplicaciones que le sean permitidas, así como leer, modificar o borrar aquellos archivos sobre los cuales tenga permiso.
Las cuentas de usuario no solo ofrecen al usuario un nombre y una contraseña, también le proporciona una ruta para almacenar sus documentos y su perfil generalmente dentro de la carpeta /home/nombre-usuario y comúnmente denominada carpeta home del usuario y un intérprete de comandos (shell) que le permitirá ejecutar aplicaciones.
Cuando el usuario ejecuta una aplicación, el sistema carga la aplicación en memoria y la ejecuta. En el argot informático a las aplicaciones que se están ejecutando en un momento determinado se les denomina procesos. Los procesos en ejecución pertenecen a algún usuario. El sistema asigna a los procesos el usuario que los ejecuta. Ejemplo, si el usuario "pepe" ejecuta la aplicación "konqueror", en la lista de procesos del sistema aparecerá un nuevo proceso llamado "konqueror" cuyo propietario es "pepe". Obligatoriamente, todos los procesos del sistema pertenecen a algún usuario. Ejecutando el comando 'ps aux' podemos ver todos los procesos en ejecución. Si ejecutamos el comando 'top' lo veremos a tiempo real.
Cuando se crea un nuevo archivo, el propietario del archivo será el usuario que lo ha creado y el grupo del archivo será el grupo principal de dicho usuario. Ejemplo, si "pepe" cuyo grupo principal es "profes" crea un nuevo archivo llamado examen.txt, el propietario de examen.txt será "pepe" y el grupo propietario será "profes", o lo que es lo mismo, el archivo pertenecerá al usuario pepe y al grupo profes. Obligatoriamente, todos los archivos del sistema pertenecen a algún usuario y a algún grupo.
La cuenta de usuario le permite acceder al sistema tanto de forma presencial (sentado delante del ordenador) como de forma remota accediendo desde otro equipo por la red. Los permisos que tiene el usuario cuando utiliza el sistema presencialmente son los mismos que tiene cuando lo hace remotamente. Lo habitual es utilizar el sistema de forma remota ya que al ser Unix un sistema multiusuario, la única forma de que varios usuarios lo utilicen de forma simultánea es remotamente.
El sistema Unix codifica los usuarios con un número diferente a cada uno que es el identificador de usuario (uid = User IDentifier). Internamente el sistema trabaja con el uid, no con el nombre del usuario. Normalmente a los usuarios que creemos se les asignan uids desde 1000 en adelante. Los números uid menores que 100 se reservan para usuarios especiales del sistema.
En Unix por defecto, la información de los usuarios de un sistema se guarda en el archivo /etc/passwd. Es un archivo de texto que puede visualizarse con cualquier editor. Cada linea del archivo /etc/passwd almacena los parámetros de un usuario. Solo puede modificarlo el administrador (root). A continuación mostramos el archivo passwd:
Volcado del archivo /etc/passwd
Las contraseñas de cada usuario se guardan encriptadas con un sistema de codificación irreversible, en el archivo /etc/shadow que también es un archivo de texto.
Volcado del archivo /etc/shadow
Ejemplo, si en un centro educativo el grupo "profesores" tiene acceso a ciertas carpetas, cuando demos de alta un profesor nuevo, tan solo tendremos que añadirle al grupo "profesores" para que pueda acceder a todas esas carpetas. Es lo que se denomina administración de permisos por grupos.
Todos los usuarios pertenecen al menos a un grupo que es el grupo principal del usuario, también llamado grupo primario del usuario, pero pueden pertenecer a más grupos. En caso de que pertenezcan a más grupos, éstos serán grupos secundarios.
Todo usuario debe pertenecer a un grupo principal obligatoriamente
Los grupos pueden contener varios usuarios. Los grupos de usuarios solo pueden contener usuarios, nunca podrán contener a otros grupos.
El sistema Unix codifica los grupos de usuarios con un número diferente a cada uno que es el identificador de grupo (gid = Group IDentifier). Internamente el sistema trabaja con el gid, no con el nombre del grupo. Normalmente a los grupos que creemos se les asignan gids desde 1000 en adelante. Los números gid menores que 100 se reservan para grupos especiales del sistema.
En Unix por defecto, la información de los grupos de un sistema se guarda en el archivo /etc/group. Es un archivo de texto que puede visualizarse con cualquier editor. Cada linea del archivo /etc/group almacena los parámetros del grupo y los usuarios que contiene. Solo puede modificarlo el administrador (root). Las contraseñas de los grupos se guardan encriptadas con un sistema de codificación irreversible, en el archivo /etc/gshadow que también es un archivo de texto.