Tabla de contenidos
Puesto que Linux es un sistema multiusuario, permite que varios usuarios usen el sistema simultáneamente. Se hace necesario que cada usuario no pueda acceder a los documentos de los demás, además no todos los usuarios deberían poder instalar programas, modificar ficheros importantes del sistema u otras cosas importantes.
Por ello Linux establece login y password (nombre y contraseña) para cada usuario. Además existe el administrador del sistema o superusuario, cuyo login es root, que tiene acceso a todo y permisos para todo.
Las contraseñas son almacenadas de forma cifrada, por lo que es imposible acceder a ellas (si las guardara simplemente en un fichero de texto, sería muy fácil acceder y romper el sistema de seguridad).
Seguridad: debemos usar contraseñas que no sean cortas y compuestas de letras mayúsculas y minúsculas, dígitos e incluso signos. Si usamos una palabra del diccionario, los crackers pueden fácilmente averiguar nuestra contraseña, pues existen programas que van probando con cada una de las palabras del diccionario.
Un grupo es un conjunto de usuarios que comparten las mismas características. La idea de grupo permite al administrador del sistema dar ciertos permisos (por ejemplo: autorización para usar la grabadora) al grupo, evitando tener que dárselos a cada usuario individualmente.
Todo usuario debe pertenecer al menos a un grupo. Además existen otros usuarios, aparte de los reales, que los usa el sistema para determinadas operaciones. Estos usuarios del sistema (no reales) no se pueden "logear", es decir no se puede entrar al sistema tecleando un login de estos.
El usuario root o superusuario no debe entrar al sistema con el login de root, sino que debe tener además un login y password para entrar al sistema. Sólo cuando necesite realizar acciones especiales, el sistema le pedirá la contraseña de root y podrá acceder. Aunque es posible acceder como root a un sistema Linux, no es recomendable.
Toda la información sobre usuarios, grupos y contraseñas se guarda en los archivos:
/etc/passwd
(información sobre usuarios)
/etc/group
(información sobre grupos)
/etc/shadow
(contraseñas cifradas)
/etc/gshadow
(contraseñas cifradas de los grupos) [normalmente no se usa este fichero]
En estos archivos de texto, se almacena la información línea a línea (cada una es un usuario o un grupo).
Dentro de cada línea hay varios campos separados por “:”
Cada una de las líneas representa un usuario y responde al esquema:
usuario : x : UID : GID : comentarios : directorio_home : shell
usuario: es el login o nombre de usuario (nombre único para cada usuario)
x: contraseña: aparece una x; la contraseña se encuentra cifrada en /etc/shadow
UID: User IDentifier (nº de Identidad de Usuario). Es único. Debe ser un entero≥0 (el cero se reserva para root y del 1 al 99 se reservan para tareas del sistema). Usar de 100 en adelante.
GID: nº de Identidad de Grupo (el cero se reserva para el grupo root)
comentarios: nombre real u otros comentarios sobre el usuario (puede contener espacios)
directorio_home: directorio de inicio del usuario
shell: intérprete de comandos (normalmente bash). Si ponemos /bin/false el usuario no podrá ejecutar ningún comando del sistema
Ejemplo:
dani@guadalinex:~$ cat /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh ... identd:x:100:65534::/var/run/identd:/bin/false sshd:x:101:65534::/var/run/sshd:/bin/false gdm:x:102:103:Gnome Display Manager:/var/lib/gdm:/bin/false dani:x:1000:100::/home/dani:/bin/bash yaiza:x:1001:1001:,,,:/home/yaiza:/bin/bash
Tecleando en un terminal cat /etc/passwd
nos muestra el contenido del fichero /etc/passwd
Observe como el primer usuario que aparece (primera línea) es root
A continuación una serie de usuarios (no reales) del sistema
Por último (dos últimas líneas) los usuarios "dani" y "yaiza"
Podemos comprobar como en esta distribución de Linux ( GuadaLinex 2004) los números de usuarios empiezan desde 1000 en adelante (en otras distribuciones lo hacen desde 100 o desde 500)
Cada una de las líneas representa un grupo y responde al esquema:
grupo : x : GID : lista_usuarios
grupo: es el nombre del grupo
x: contraseña: aparece una x; la contraseña se encuentra cifrada en /etc/shadow. Si este campo aparece vacío, significa que el grupo no necesita contraseña.
GID: nº de Identidad de Grupo (el cero se reserva para el grupo root)
lista_usuarios: lista de usuarios que pertenecen al grupo separados por comas. También se pueden añadir usuarios de otros grupos, con lo que tendrían todos los privilegios de este grupo
Para añadir un nuevo usuario a un grupo, basta con agregarlo en la lista de usuarios (sin olvidar poner la coma de separación entres usuarios)
Cada una de las líneas representa un usuario y responde al esquema:
usuario : contraseña_cifrada : d1 : d2 : d3 : d4 : d5 : d6 : reservado
usuario: es el login o nombre de usuario (el mismo que en /etc/passwd)
x: contraseña: aparece una x; la contraseña se encuentra cifrada en /etc/shadow.
d1: nº de días desde el 01/01/1970 hasta último cambio de la contraseña.
d2: nº de días que deben pasar hasta que se pueda cambiar la contraseña.
d3: nº de días que deben pasar para que caduque la contraseña y deba ser cambiada.
d4: nº de días de antelación con los que avisará el sistema de la caducidad de la contraseña.
d5: nº de días con contraseña caducada antes de deshabilitar la cuenta.
d6: nº de días desde el 01/01/1970 y el día en que se deshabilitó la cuenta.
reservado: campo reservado
Al igual que el fichero /etc/shadow
de las contraseñas encriptadas para usuarios, también se puede usar un fichero /etc/gshadow
de contraseñas encriptadas para grupos.
Se suele usar para permitir el acceso al grupo, a un usuario que no es miembro del grupo. Ese usuario tendría entonces los mismos privilegios que los miembros de su nuevo grupo.
useradd [opciones] user | Añade un usuario al sitema |
---|---|
user | login o nombre de usuario |
[opciones] | Si se deja en blanco toma las opciones por defecto |
-c comentario | Incluir comentario (normalmente nombre completo del usuario) |
-d directorio_home | Permite especificar su directorio de inicio |
-m | Crea directorio de inicio /home/usuario y le pone todos los subdirectorios y ficheros que haya en /etc/skel |
El nuevo usuario creado no tiene contraseña. Para asignarle una contraseña, tecleamos desde terminal (siendo root): passwd usuario contraseña.
Cualquier usuario puede cambiar su contraseña tecleando passwd.
usermod [opciones] user | Modifica las opciones de un usuario |
---|---|
user | login o nombre de usuario |
[opciones] | Si se deja en blanco toma las opciones por defecto |
-L | Look. Bloquea la contraseña (deshabilita la cuenta) |
-U directorio_home | Unlook. Desbloquea la contraseña. |
userdel [-r] user | Borra la cuenta de un usuario |
---|---|
user | login o nombre de usuario |
[opciones] | Tan solo dispone de la opción -r |
-r | Borra también su directorio home |
Si usamos la opción -r borrará el directorio home del usuario, pero no borra el resto de ficheros que tenga en otras carpetas. Estos ficheros tienen como dueño un usuario inexistente, por lo que podría crear conflictos en el sistema. Por ello resulta aconsejable deshabilitar una cuenta en lugar de eliminarla. Otra opción es usar el comando deluser (que permite incluso hacer copia de seguridad de los ficheros del usuario)
groupadd nombre_grupo | Añade un grupo al sistema |
---|
groupmod [-n] grupo | Modifica un grupo |
---|---|
-n nuevo_nombre | Cambia el nombre del grupo |
groupdel nombre_grupo | Borra un grupo del sistema |
---|
Si es el grupo primario de algún usuario no se puede borrar.
Otros comandos: | |
chage | cambia información sobre la caducidad de la contraseña |
chfn | cambia la información del campo "comentario" de un usuario |
chsn | cambia la información del campo “shell” de un usuario |
whoami | nos dice qué usuario somos |
groups | nos dice en qué grupos estamos |
id | nos muestra ID y grupos |
login | nos permite cambiar de usuario |
su | nos permite cambiar a superusuario (root) |
newgrp | nos permite cambiar a otro grupo (necesitamos saber la contraseña) |
sg | nos permite ejecutar comandos de otro grupo |
who | lista los usuarios que hay en el sistema |
w | lista los usuarios que hay en el sistema y lo que están haciendo |
write | escribir mensaje a otro usuarios |
wall | escribir mensaje a todos los usuarios |
mesg | [y/n] permitir o no que te escriban mensajes |
Para añadir un usuario al sistema tecleamos:
# useradd -m nuevo_usuario # passwd nuevo_usuario
teclear contraseña (la pide dos veces)