Usuarios
Todo usuario de un sistema Unix debe tener una cuenta para poder acceder.
Se trata de una colección de características lógicas que especifican quién es el usuario y lo que puede hacer dentro del sistema.
Se incluye:
Entre las cuentas asociadas a los usuarios se pueden encontrar diferentes tipos:
- Cuentas normales de usuario.
- Cuenta del administrador (superusuario o root).
- Cuentas especiales de servicios, usados por los servicios internos. Esto aumenta la seguridad al evitar que se ejecuten como root y se tiene un mayor control sobre sus capacidades.
Superusuario
El superusuario es un usuario especial que tiene todos los permisos y actúa
a modo de administrador del sistema. Su nombre de login es root (aunque se
puede cambiar).
- Puede acceder a todos los archivos del sistema
- Puede crear otros usuarios
- Puede instalar y borrar software
- Puede matar cualquier proceso del sistema
- Puede apagar y reiniciar la máquina
Se puede cambiar la contraseña de cualquier usuario (como root o ese mismo
usuario usando el comando passwd.
- No usar el nombre de login ni variantes
- Tampoco datos personales como DNI, nombre, teléfono, etc
- No repetir contraseñas
- Usar contraseñas largas: 12 o más caracteres
- Mezclar letras mayúsculas y minúsculas, números y puntuación
Archivos de información sobre los usuarios
| Archivos de información sobre los usuarios | |
|---|---|
/etc/passwd | Mantiene la información principal de cada cuenta:
|
/etc/shadow | Fichero sin permiso de lectura que guarda las contraseñas encriptadas. |
/etc/group | Información sobre los grupos definidos, similar a /etc/passwd. |
/etc/gshadow | Contraseñas para los grupos. |
/etc/skel | Contiene los ficheros iniciales de nuevos usuarios, a modo de plantilla. |
/etc/passwd
Este archivo contiene la lista de todos los usuarios. Este es su formato:
username : password : UID : GID : GECOS : homedir : shell
Si aparecen :: seguidos, el campo está vacío.
username: identificación del usuario en el sistema.- Único en toda la organización, no solo la máquina local.
- Preferiblemente corto, todo en minúsculas con caracteres ASCII.
- Fácil de recordar.
- Formato fijo (
nombreapellidopor ejemplo).
password: si aparece unaxes que están encriptadas y almacenadas en/etc/shadow.UID: identificador del usuario (entero).- 0: root
- 1 - 999: usuarios especiales del sistema
- 1000 - 65535: usuarios normales
GID: identificador del grupo principal del usuario (entero)GECOS: comentario sobre el usuario, como su despacho, teléfono, etc.homedir:/home/magno/,/rootshell:/bin/bash,/usr/sbin/nologin
Para filtrar se pueden usar los comandos cut y awk:
cat /etc/passwd | cut -d: -f1
cat /etc/passwd | awk -F: '{print $1}'
/etc/shadow
Fichero de acceso restringido que almacena contraseñas encriptadas.
pepe:$1$.QKDPc5E$SWlkjRWexrXYgc98F.:12825:0:90:5:30:13096:
/etc/group
Similar a /etc/passwd: almacena información sobre los grupos de usuarios.
groupname : password : GID : user1,user2...
La contraseña es una x si se almacena en /etc/gshadow (mismo formato que
/etc/shadow). No suele usarse.
Algunos grupos:
users: usuarios normalessudo: permite al usuario ejecutar comandos como root usandosudohttp: puede gestionar los servicios webgames: puede gestionar los juegos
Comandos
| Mostrar información sobre usuarios y grupos | |
|---|---|
who | Este comando permite saber quien está conectado. Alternativamente puedes usar users, aunque da menos información. |
groups [username] | Este comando permite saber en qué grupos se encuentra un usuario. |
| Creación de usuarios y grupos | |
useradd opts usuario(Bajo nivel) | Añade un nuevo usuario al sistema.
|
userdel | Borra un usuario |
usermod | Modifica los parámetros de un usuario |
groupadd, groupdel, groupmod(Bajo nivel) | Creación, eliminación y modificación de grupos a bajo nivel. |
mkpasswd | Cifra una contraseña. |
adduser, deluseraddgroup, delgroup(Alto nivel) | Creación de usuarios y grupos a alto nivel en función de la configuración
especificada en /etc/adduser.conf.
Frontend para useradd, usermod y userdel; groupadd, groupmod y groupdel. |
newusers, chpasswd | Creación y edición de usuarios simultáneamente. |
| Gestión de usuarios y grupos | |
vipw | Permite editar /etc/passwd y /etc/groups de forma segura. Si se le pasa la
opción -s se usa para /etc/shadow y /etc/gshadow. |
passwd | Permite fijar o cambiar la contraseña de un usuario. |
chage [username]Change Age | Permite cambiar la información de expiración de la contraseña. Ver información
con chage -l. |
gpasswd | Gestión de grupos (clave y miembros) por root. |
newgrp | El propio usuario (no root) puede cambiar de grupo con
|
| Permisos | |
chmod | Cambia los permisos de un archivo. |
chown | Cambia el dueño de un archivo |
chgrp | Cambia el grupo dueño de un archivo |
| Otros | |
su [-] username | Cambia de usuario. Si no se especifica, pasa a root. |
sudo [-u usuario] cmdSuper-User Do | Ejecuta un comando como otro usuario.
|
Creación de una cuenta
Los pasos para hacerlo manualmente son:
- Añadir una nueva línea a
/etc/passwdcon la información adecuada.
Para evitar la corrupción del archivos, se usavipw. Solo guarda el archivo si el formato es correcto. - Editar el archivo
/etc/shadow.- La contraseña debe escribirse cifrada. Usar
passwd. - Para evitar la corrupción, usar
vipw -s.
- La contraseña debe escribirse cifrada. Usar
- (Opcional) Editar
/etc/groupspara añadir el nuevo grupo del usuario o asignarle grupos. - (Opcional) Editar
/etc/gshadowpara también poner los miembros. Para no usar contraseña, escribir*o!. - Crear el directorio del usuario:
mkdir /home/usuario - Copiar los archivos de
/etc/skel:cp /etc/skel/* /home/usuario - Usar
chown,chgrpychmodpara fijar el propietario, grupo y permisos adecuados. - Fijar la contraseña con
passwd usuario. El usuario la cambiará tan pronto como pueda, esto puede forzase conpasswd -e.
Alternativamente se puede usar useradd.
useradd \
-m \ # Crea /home/aitor y copia /etc/skel
-c "Aitor Tilla" \ # Comentario / GECOS
-s /bin/bash \ # Shell
-g staff \ # Grupo principal
-G sudo,http \ # Otros grupos
-e 2002-11-01 \ # Fecha de expiración de la cuenta
aitor # Username