Usuarios y Grupos
Usuarios y Grupos
Tipos de cuenta de usuarios: root, usuarios humanos con y sin privilegios de administración, usuarios del sistema, usuarios para cada aplicación (e.g. el usuario "mysql" para la base de datos "MySQL").
Archivos: en /etc: passwd, shadow, group, gshadow
Comandos: useradd, usermod, userdel, groupadd, groupmod, groupdel
finger, chfn, chsh
passwd, usado por un usuario común, usado por un supervisor
newusers, chpasswd: para manejar cantidades de usuarios.
Control de permisos: chown, chgrp, chmod, umask
Sistemas centralizados de datos y control de usuarios: NIS (obsoleto), LDAP.
Objetivos
- Administrar usuarios y grupos del sistema.
Software
Comandos: adduser, usermod, userdel, addgroup, groupmod, groupdel, finger,chfn, chsh, passwd, newusers, chpasswd, chown, chgrp, chmod,umask.
Archivos: /etc/passwd, /etc/shadow, /etc/group, /etc/gshadow.
Procedimiento
Comandos para gestionar usuarios y grupos
- Añadir usuarios y grupos.
adduser <nombre>: añade el usuario <nombre> al sistema. El sistema pedirá alguna información adicional sobre el usuario y una contraseña. Por defecto se creará un grupo con el nombre del usuario y éste será su grupo principal.
adduser --ingroup <grupo> <nombre>: añade el usuarios <nombre> estableciendo <grupo> como su grupo principal.
adduser <nombre> <grupo>: añade el usuario <nombre> (previamente creado) al grupo <grupo>.
addgroup <grupo>: añade al sistema un grupo llamado <grupo>.
- Eliminar usuarios y grupos.
userdel <nombre>: elimina del sistema el usuario <nombre>. Si además se indica la opción -r, también se borrará el directorio personal del usuario con todo su contenido.
groupdel <grupo>: elimina del sistema el grupo <grupo>.
- Modificar usuarios y grupos.
usermod -g <directorio> -m: cambia el directorio de inicio del usuario para que sea <directorio>. La opción -m hace que mueva el contenido del antiguo directorio al nuevo emplazamiento.
usermod -g <grupo> <nombre>: cambia el grupo inicial del usuario <nombre> para que sea <grupo>.
usermod -l <nuevo_nombre> <nombre>: cambia el nombre del usuario <nombre> por <nuevo_nombre>.
groupmod -n <nuevo_grupo> <grupo>: cambia el nombre del grupo <grupo> por <nuevo_grupo>.
- Información de usuarios.
finger: (sin argumentos) información de los usuarios del sistema.
finger <usuario>: información de usuario (login, nombre, último ingreso, ruta de carpeta personal, etc).
- Cambiar información personal de un usuario
chfn <usuario>: muestra y permite cambiar la información personal (menos el nombre) en la cuenta de usuario.
- Cambiar shell de acceso
chsh : (sin argumentos) permite cambiar el shell de acceso para root
chsh <usuario>: permite cambiar el shell de acceso para usuario
- Establecer y/o cambiar contraseña de usuario
passwd (sin argumentos): permite cambiar la contraseña del usuario actual.
passwd <usuario>: permite cambiar la contraseña de usuario (usado sin sudo pide contraseña actual),
- Bloquear/Desbloquear una cuenta por un supervisor
passwd -l <usuario>: bloquea la cuenta de usuario añadiendo "!" delante de su contraseña en el archivo /etc/shadow.
passwd -u <usuario>: desbloque la cuenta de usuario.
- Crear múltiples usuarios (usuario supervisor)
newusers: permite crear o actualizar usuarios desde archivo Cada línea del archivo debe tener el mismo formato que el archivo /etc/passwd (usuario:contraseña:UID:GID:nombre_usuario:directorio:shell) sudo newusers nuevos_usuarios
- Cambiar contraseña a varios usuarios (usuario supervisor)
sudo chpasswd
user1:contraseña1
user2:contraseña2
........
- Control de permisos
chown <usuario> <archivo>: cambia el dueño de <archivo> adjudicándoselo a <usuario> (sólo supervisor)
chown <usuario> <archivo1> <archivo2>...: cambia el dueño de la lista de archivos adjudicándoselo a <usuario>. (sólo supervisor)
chgrp <grupo> <archivo1> <archivo2>...: cambia de grupo la lista de archivos adjudicándoselo a <grupo>.
Los permisos de un archivo pueden ser modificados por el propietario o por el administrador del sistema con el comando chmod que espera dos parámetros: cambio por realizar al permiso y nombre del archivo por cambiar. Los permisos se pueden especificar de manera simbólica o absoluta.
Simbólica: + agrega permisos - quita permisos = únicos permisos asignados al archivo r lectura w escritura x ejecución, o acceso si es un directorio s usa al id del dueño o grupo del archivo al ejecutar t fija "sticky bit" a un directorio: sólo dueños pueden borrar u usuario (dueño) g grupo o otros a todos (dueño, grupo y otros)
Ejemplos: chmod u+rwx,g+rw-x,o+r-wx archivo chmod u=rwx,g=rw,o=r archivo (ambos ejemplos cambian los permisos de los archivos indicados
Absoluta: Se usa un código de 4 dígitos octales 0...7, en la forma Nnnn N: 4 fijar id del dueño al ejecutar, 2 fijar id del grupo al ejecutar, 1 fijar "sticky bit" a un directorio. nnn: 4 lectura 2 escritura 1 ejecución o acceso si es un directorio.
Ejemplo: chmod 0764 archivo (cambia los permisos como en el ejemplo usando forma simbólica)
- Definir permisos de acceso por defecto para nuevos ficheros
Los permisos por defecto pueden ser modificados para un nuevo archivo con el comando umask. Generalmente el valor por defecto es 022. Para determinar con qué permisos se creará un archivo se realiza permisos base - valor de umask (permiso base para directorios 777, para archivos 666). Ejemplo: 777-022=755, significa que los directorios se crearán con permisos de lectura, escritura y ejecución para el propietario y de lectura y ejecución para todos los demás.
umask: sin argumentos muestra el valor de umask umask nnn: cambia temporalmente los permisos para los nuevos archivos
Para modificar de forma permanente: - Editar archivo .bashrc, agregar al final del archivo "umask xxx", siendo xxx el valor que se deberá restar para obtener los permisos deseados. (Afecta sólo al usuario actual) - Editar archivo /etc/profile, modificar la línea "umask xxx" cambiando "xxx" por el valor que se deberá restar para obtener los permisos deseados. (Afectará a todos los usuarios del sistema, se requieren privilegios de administrador).
Archivos
- /etc/passwd: guarda información de los usuarios del sistema.
Formato: cada línea representa un usuario y contiene los siguientes campos:
usuario: x: UID: GID: Nombre_usuario: directorio: shell
usuario: Nombre que identifica al usuario en el sistema. Debe tener entre 1 y 32 caracteres.
x: Indica que la contraseña se encuentra cifrada en /etc/shadow.
UID: ID de usuarios. El cero está reservado para root, 1-999 reservados para el sistema y a partir del 1000 para los usuarios del sistema.ario.
GID: ID de grupo. ID del grupo principal del usuario (será el grupo por defecto ). La información de los grupos está en /etc/groups.
Nombre_usuario: Información del usuario (nombre, ubicación, teléfono del trabajo).
directorio: Directorio de trabajo de usuario (ruta completa).
shell: Interprete de comando de usuario (ruta completa).
- /etc/shadow: almacena las contraseñas cifradas de los usuarios del sistema. El archivo sólo lo puede ver y editar root (sudo cat /etc/shadow).
Formato: cada línea representa un usuario y contiene los siguientes campos:
usuario: passwd: last: may: must: warn: expire: disable: reserved
usuario: Nombre que identifica al usuario en el sistema. passwd: Contraseña encriptada. last: Días que han pasado desde la última vez que la contraseña fue cambiada contados desde el 1 de enero de 1970. may: días que deben pasar como mínimo para que el usuario pueda cambiar la contraseña. must: Días durante los que la contraseña es válida. Después el usuario debe cambiar la contraseña. warn: Días a los que el usuario será avisado de que debe cambiar la contraseña antes de que ésta expire. expire: Días a lo que se deshabilita la cuenta después de que caduque la contraseña. disable: Días a lo que se deshabilita la cuenta contados desde el 1 de enero de 1970 reserved: campo reservado.
- /etc/group: almacena la información sobre los grupos existentes en el sistema.
Formato: cada línea representa un grupo y contiene cuatro campos:
Nombre_grupo: ! : GID : miembro,miembro,...
Nombre_grupo: El nombre del grupo. !: Este campo contenía la contraseña, actualmente ésta se localiza en el archivo /etc/gshadow. GID: El número ID de grupo. miembro: Lista de los miembros del grupo, separados por comas (sin espacios).
- /etc/gshadow: contiene las contraseñas cifradas de los grupos existentes en el sistema. El archivo sólo lo puede ver y editar root (sudo cat /etc/gshadow)
Formato: cada línea representa un grupo y contiene los siguientes campos:
Nombre_grupo : password : admin,admin,... : miembro,miembro,....
Nombre_grupo: Nombre del grupo. password: Contraseña de grupo encriptada. admin: Lista de administradores del grupo. miembro: Lista de miembros del grupo. Verificación Notas adicionales
Referencias
Paginas man
Gestión de usuarios y grupos http://doc.ubuntu-es.org/Gesti%C3%B3n_de_usuarios_y_grupos