- Aprender
- Informática
- TI, redes y nube
- Introducción a Linux
- Usuarios, grupos y permisos en Linux
Usuarios, grupos y permisos en Linux
sudo. Crea y gestiona usuarios y grupos, consulta y cambia la propiedad y los permisos con chown y chmod, establece valores predeterminados adecuados con umask y utiliza los bits SUID, SGID y de permanencia. Termina identificando la causa de un error «Permiso denegado» y corrigiéndolo con el cambio seguro más pequeño posible.PrincipianteUnidad 5 de 7 del curso Curso de Introducción a Linux
Lo que aprenderás
- Explica cómo identifica Linux a cada usuario y grupo mediante un número, distingue entre cuentas de superusuario, de usuario normal y del sistema, y lee los archivos que almacenan las cuentas, los grupos y los datos de contraseñas.
- Distingue entre cuentas de superusuario, de usuario normal y del sistemaDescribe los tres tipos de cuentas, el identificador de usuario que identifica cada una y los comandos que muestran quién eres y quién tiene una sesión iniciada.
- Explica los grupos principales y suplementariosExplica cómo los grupos dan el mismo acceso a varios usuarios, la diferencia entre el grupo principal y los grupos suplementarios de un usuario y qué grupos tienen permisos especiales.
- Lee los archivos passwd, shadow y groupLee todos los campos de /etc/passwd, /etc/shadow y /etc/group, explica por qué los resúmenes criptográficos de las contraseñas se guardan por separado y calcula las fechas de las contraseñas a partir del archivo shadow.
- Distingue entre cuentas de superusuario, de usuario normal y del sistema
- Trabaja como usuario normal, eleva los privilegios con sudo o su solo para los comandos que lo necesiten y concede a otros usuarios exactamente los permisos de administración que necesiten.
- Utiliza sudo y su para actuar como superusuarioCompara su y sudo, ejecuta comandos individuales con privilegios elevados y evita los problemas habituales de sudo, como archivos propiedad de root y redirecciones fallidas.
- Concede permisos de sudo mediante la política de sudoersLee y escribe reglas de sudoers con visudo, convierte a un usuario en administrador mediante el grupo adecuado y limita a otros usuarios a los pocos comandos que necesitan.
- Utiliza sudo y su para actuar como superusuario
- Añade usuarios y grupos desde la línea de comandos, establece y controla contraseñas, modifica y elimina cuentas y gestiona quién pertenece a cada grupo.
- Crea cuentas de usuario con useradd y adduserCrea cuentas de usuario normal y del sistema con useradd o adduser, conoce los archivos y valores predeterminados que utiliza cada comando y comprueba el resultado.
- Gestiona contraseñas y modifica o elimina cuentasEstablece, bloquea y caduca contraseñas, aplica periodos de vigencia, cambia los datos de las cuentas con usermod y elimina cuentas sin dejar problemas pendientes.
- Crea grupos y gestiona sus miembrosCrea, renombra y elimina grupos, añade y elimina miembros y configura una carpeta que pueda compartir un equipo.
- Crea cuentas de usuario con useradd y adduser
- Consulta el propietario, el grupo y los bits de permisos de cualquier archivo o directorio, explica qué permite cada permiso y cámbialos con chmod, chown y chgrp.
- Consulta la propiedad y los permisos en un listadoInterpreta cada parte de una línea de ls -l y determina qué clase de permisos se aplica a un usuario concreto.
- Explica qué permiten la lectura, la escritura y la ejecuciónExplica qué permiten r, w y x en un archivo normal y en un directorio, y predice si una operación como leer, ejecutar, crear o eliminar tendrá éxito.
- Cambia permisos con chmodEstablece y cambia permisos con modos simbólicos y octales, convierte entre las dos formas y modifica árboles de directorios completos de forma segura.
- Cambia la propiedad con chown y chgrpCambia el usuario y el grupo propietarios de archivos y árboles de directorios, identifica quién puede hacerlo y predice quién es propietario de los archivos creados, copiados y movidos.
- Consulta la propiedad y los permisos en un listado
- Elige los permisos que reciben los archivos nuevos, utiliza los bits SUID, SGID y de permanencia cuando resulten útiles, y encuentra la causa de un error de permisos y corrígelo con el cambio seguro más pequeño posible.
- Establece permisos predeterminados con umaskDetermina los permisos de los archivos y directorios nuevos a partir de la umask y establece una umask para una sesión o de forma permanente.
- Utiliza SUID, SGID y el bit de permanenciaExplica los tres bits de permisos especiales, reconócelos en los listados, establécelos con chmod y utilízalos de forma segura en programas, carpetas de equipo y directorios compartidos.
- Diagnostica problemas de permisos y aplica el principio de mínimo privilegioInvestiga paso a paso un error «Permiso denegado», elige la solución segura más pequeña posible y mantén estrictamente restringidos los archivos sensibles y los permisos de administrador.
- Establece permisos predeterminados con umask
Guía de estudio de Usuarios, grupos y permisos en Linux
1Comprende los usuarios, los grupos y los archivos de cuentas
Linux asigna una identidad a cada persona y a cada servicio en ejecución. Esa identidad vincula un identificador de usuario y la pertenencia a grupos con los archivos a los que puede acceder el proceso. Consultar tu identidad actual, las sesiones activas y los registros de cuentas facilita la explicación de las decisiones de acceso. El archivo público de cuentas describe la identidad de una cuenta, mientras que los registros protegidos de contraseñas controlan el inicio de sesión con contraseña y su vigencia.
1.1 Distingue entre cuentas de superusuario, de usuario normal y del sistema
Cada comando se ejecuta con una identidad. Linux utiliza esa identidad para decidir qué archivos puede abrir el comando y qué configuraciones puede cambiar. Una cuenta de usuario puede representar a una persona o a un servicio que se ejecuta en segundo plano.
El número detrás del nombre
El núcleo identifica una cuenta por su identificador de usuario (UID). Los nombres como alice facilitan el reconocimiento del número, pero los permisos siguen al número. La cuenta root tiene el UID 0 y su directorio personal es /root. Una cuenta con otro nombre y UID 0 tiene los mismos privilegios de superusuario.
Un usuario normal es la cuenta cotidiana de una persona. En la mayoría de las distribuciones, los UID de usuarios normales empiezan en 1000; UID_MIN en /etc/login.defs establece ese límite. Un usuario normal puede modificar sus propios archivos y cualquier otro archivo que permitan los permisos. Para cambiar la configuración protegida del sistema se necesitan privilegios elevados.
Una cuenta del sistema da a un servicio su propia identidad limitada. La mayoría tiene UID inferiores a 1000 y un intérprete como /usr/sbin/nologin. La cuenta especial nobody suele tener el UID 65534, por lo que el rango por sí solo no identifica todas las cuentas de servicio. Debian y Ubuntu utilizan www-data para los servicios web; un servicio SSH puede utilizar sshd.
Consulta tu identidad actual
Ejecuta whoami para ver tu nombre de usuario o id para ver los números y grupos. Por ejemplo:
uid=1001(alice) gid=1001(alice) groups=1001(alice),27(sudo),1005(developers)
Interpreta la salida en tres partes. El UID de Alice es 1001. Su grupo principal es alice, con GID 1001. Su lista de grupos también incluye sudo y developers. Es una usuaria normal, no root: el grupo sudo puede autorizar comandos con privilegios elevados, pero su intérprete actual sigue ejecutándose como Alice.
Muchos intérpretes muestran # para root y $ para un usuario normal. El indicador de comandos se puede personalizar, así que consulta id cuando la identidad sea importante. La primera cuenta creada durante la instalación suele ser una cuenta normal con acceso a sudo, también en Ubuntu; ser la primera cuenta creada no la convierte en root.
Comprueba las sesiones de inicio de sesión
| Comando | Qué muestra |
|---|---|
who | Sesiones actuales, terminales y horas de inicio de sesión |
w | Sesiones actuales, actividad, tiempo de funcionamiento y carga |
last | Inicios de sesión y reinicios anteriores registrados, empezando por los más recientes |
wtmpdb last | Historial de inicios de sesión en sistemas que utilizan wtmpdb |
Estos comandos responden a una pregunta distinta de whoami: informan sobre sesiones, no solo sobre la identidad de tu intérprete. Debian 13 es uno de los sistemas que utiliza wtmpdb para su historial.
Las identidades separadas favorecen el mínimo privilegio, la trazabilidad de las acciones y el aislamiento. Un servicio web puede leer los archivos que sirve sin obtener los documentos privados de todos los usuarios. Los registros pueden mostrar qué cuenta actuó. Si el servicio se ve comprometido, el ataque comienza con los permisos de esa cuenta de servicio. Root puede eludir las restricciones ordinarias de lectura y escritura de archivos, por lo que una segunda cuenta con UID 0 supone un problema grave de seguridad.
Puntos clave
- Linux identifica a los usuarios mediante el UID; el UID 0 tiene los privilegios de root.
- Las cuentas normales sirven a las personas; las cuentas del sistema dan identidades limitadas a los servicios.
idmuestra tu identidad y tus grupos activos; pertenecer asudono convierte tu intérprete en root.whoywmuestran las sesiones actuales;lastowtmpdb lastmuestra el historial registrado.
1.2 Explica los grupos principales y suplementarios
Compartir un archivo con un equipo es más fácil cuando el equipo tiene un grupo. Asigna el archivo a ese grupo, dale los permisos necesarios y gestiona sus miembros a medida que se incorporan o se marchan personas.
Un grupo principal y pertenencias adicionales
Un grupo tiene un nombre y un identificador de grupo (GID) numérico. Cada usuario tiene un grupo principal, almacenado como GID en /etc/passwd. Un archivo nuevo suele adoptar el grupo principal del proceso que lo crea. Más adelante, un directorio con SGID proporcionará otra regla para asignar el grupo de un archivo nuevo.
Los usuarios también pueden tener varios grupos suplementarios. Esas pertenencias añaden identidades de grupo a sus procesos; el usuario no necesita cambiar de grupo principal cada vez que abre el archivo de otro equipo. Tanto el grupo principal como los suplementarios cuentan cuando Linux comprueba si el usuario pertenece al grupo de un archivo.
La mayoría de las distribuciones crean un grupo privado de usuario junto con cada usuario normal. Alice puede tener el nombre de usuario alice, UID 1001, grupo principal alice y GID 1001. Siguen siendo identidades de usuario y grupo separadas aunque sus nombres y números coincidan. Un archivo asignado al grupo privado de Alice no se comparte con todo el equipo.
Inspecciona la pertenencia a un grupo
Usa groups para ver los nombres de tus propios grupos. groups bob e id bob consultan los grupos a los que pertenece Bob; id -Gn muestra los nombres de los grupos del proceso actual sin números. Una consulta de grupo podría mostrar:
getent group developers
developers:x:1005:alice,bob
El grupo se llama developers, su GID es 1005 y Alice y Bob aparecen como miembros suplementarios. Una cuenta cuyo GID principal sea 1005 también pertenece al grupo, aunque su nombre no figure en esa última lista. Para comprobar todos los grupos de una persona, usa id con su nombre en lugar de depender solo de esa lista.
Aplica los permisos de un grupo
Supongamos que plan.txt pertenece a bob:developers y tiene el modo rw-r-----. Alice no es Bob, pero pertenece a developers. Por tanto, utiliza la terna de permisos central, r--: puede leer el plan, pero no puede modificar su contenido. Chen no es el usuario propietario ni pertenece al grupo, así que utiliza la última terna, ---.
Cambiar el nombre de grupo asignado a un archivo no crea permisos por sí mismo. Si su terna de grupo es ---, los miembros siguen sin recibir acceso mediante esa clase. El grupo propietario identifica al equipo; los bits de permisos especifican qué puede hacer el equipo.
Reconoce los grupos con privilegios amplios
Algunas pertenencias conceden mucho más que acceso a una carpeta de proyecto. Debian y Ubuntu suelen autorizar al grupo sudo para ejecutar comandos de administración; Fedora y Red Hat Enterprise Linux suelen usar wheel. En Debian y Ubuntu, adm permite acceder a muchos registros del sistema. El grupo docker controla el servicio Docker y proporciona, en la práctica, control de nivel root.
Antes de añadir a alguien a un grupo, identifica a qué puede acceder. Un grupo de proyecto puede ser una forma limitada de compartir trabajo, mientras que un grupo de administración puede conceder control sobre toda la máquina.
Puntos clave
- Cada usuario tiene un grupo principal y puede tener varios grupos suplementarios.
- Los archivos nuevos suelen adoptar el grupo principal del proceso que los crea.
- Un grupo privado de usuario suele contener solo al usuario correspondiente.
- Comprueba todos los grupos de un usuario con
id username;/etc/groupno tiene por qué listar los miembros principales. - El grupo propietario y los bits de permisos del grupo funcionan conjuntamente.
- Trata la pertenencia a grupos como
sudo,wheelydockercomo una concesión de acceso con amplios privilegios.
1.3 Lee los archivos passwd, shadow y group
Linux mantiene los datos públicos de las cuentas separados de los datos de contraseñas. Leer el orden de los campos te ayuda a explicar la identidad de una cuenta, su configuración de inicio de sesión y su política de contraseñas sin cambiar los archivos a mano.
Lee un registro de cuenta
/etc/passwd tiene siete campos separados por dos puntos:
name:password:UID:GID:comment:home:shell
alice:x:1001:1001:Alice Moreau:/home/alice:/bin/bash
El UID y el GID principal de Alice son ambos 1001. El comentario, también llamado campo GECOS, indica su nombre completo. Su directorio personal es /home/alice y su intérprete de inicio de sesión es Bash. La x apunta a los datos de contraseña de /etc/shadow; no significa que su contraseña esté vacía.
Los usuarios normales pueden leer /etc/passwd, que normalmente tiene el modo 644. Los programas necesitan sus datos públicos para convertir los UID almacenados en nombres. Mantener los resúmenes criptográficos de las contraseñas en un archivo protegido separado impide que todos los usuarios locales puedan leerlos.
Lee los datos de contraseñas
/etc/shadow tiene nueve campos: nombre, resumen criptográfico de la contraseña, día del último cambio, vigencia mínima, vigencia máxima, días de aviso, días de inactividad, día de caducidad de la cuenta y un campo reservado. Root puede leerlo; algunos sistemas también conceden acceso al grupo shadow.
El resumen criptográfico de una contraseña es un resultado unidireccional, no un cifrado reversible. Al iniciar sesión, el sistema aplica el método y la sal almacenados a la contraseña introducida y después compara el resultado con el resumen almacenado. Una sal criptográfica aleatoria hace que los resúmenes sean distintos incluso cuando dos usuarios eligen la misma contraseña. Los registros de SHA-512 crypt utilizan $6$salt$hash, opcionalmente con un campo rounds=N; yescrypt utiliza $y$parameters$salt$hash.
Un ! inicial bloquea la contraseña y conserva el resumen. Un campo que contiene solo !, !! o * no tiene ninguna contraseña utilizable. Otros métodos de inicio de sesión, como las claves SSH, pueden seguir funcionando con una contraseña bloqueada.
Calcula las fechas
Considera este registro con el resumen abreviado:
alice:$y$j9T$...:20514:0:90:7:::
Las fechas cuentan los días desde el 1 de enero de 1970, UTC. El día 20514 es el 2 de marzo de 2026. Una vigencia mínima de 0 permite cambiar la contraseña inmediatamente; una máxima de 90 implica que caduca el 31 de mayo de 2026. El aviso de siete días comienza el 24 de mayo. Los campos vacíos de inactividad y caducidad de la cuenta no establecen ninguno de esos límites. Un valor de último cambio de 0 obliga a cambiar la contraseña en el siguiente inicio de sesión; un máximo de 99999 supone, en la práctica, una vigencia muy larga. La caducidad de la contraseña y la de la cuenta son campos distintos.
Lee los registros de grupos de forma segura
/etc/group utiliza name:password:GID:members. En developers:x:1005:alice,bob, el último campo lista los miembros suplementarios. Los miembros principales se encuentran mediante el GID de sus registros en passwd. El archivo protegido /etc/gshadow almacena los datos de contraseñas y administradores de grupos.
Usa getent passwd alice o getent group developers para hacer consultas. getent consulta las fuentes de cuentas configuradas además de los archivos locales. cut -d: -f1,3 /etc/passwd muestra los nombres y UID locales. Modifica los registros con comandos de gestión de cuentas como usermod y passwd; si la edición directa es inevitable, vipw y vigr bloquean los archivos durante la edición.
Puntos clave
/etc/passwdalmacena datos públicos de identidad e inicio de sesión;xapunta a/etc/shadow./etc/shadowguarda por separado los resúmenes de contraseñas, su vigencia y la caducidad de las cuentas.- Una sal hace que contraseñas iguales produzcan resúmenes almacenados diferentes.
- Una contraseña bloqueada puede dejar disponibles otros métodos de inicio de sesión.
- Las fechas de shadow cuentan los días desde el 1 de enero de 1970, UTC.
/etc/grouplista los miembros suplementarios; la pertenencia principal procede de/etc/passwd.- Usa comandos de gestión de cuentas para cambiar registros y
getentpara consultarlos.
2Ejecuta comandos de administración de forma segura
Los comandos de administración pueden modificar todo el sistema, por lo que importa la identidad que los ejecuta. Sudo permite a un usuario autorizado ejecutar un comando concreto con privilegios elevados y registra el intento; su abre un intérprete de otro usuario. Una política útil puede conceder a un equipo una acción de mantenimiento sin darle un intérprete de root de uso general. Leer la regla, editarla de forma segura y comprobar su resultado efectivo forman parte de la concesión de ese acceso.
2.1 Utiliza sudo y su para actuar como superusuario
Las tareas de administración necesitan más acceso que el trabajo diario. Mantén tu intérprete habitual bajo tu propia cuenta y eleva los privilegios para la acción que los necesite. Los archivos creados por un comando con privilegios elevados pueden pertenecer a root incluso cuando están dentro de tu directorio personal.
Elige sudo o su
| Comando | Qué inicia | Contraseña que suele solicitar |
|---|---|---|
su | Un intérprete como root | La contraseña de root |
su - bob | Un intérprete de inicio de sesión como Bob | La contraseña de Bob |
sudo command | Un comando como root | Tu propia contraseña |
sudo -u postgres psql | Un comando como postgres | Tu propia contraseña |
Un intérprete de inicio de sesión carga el entorno de inicio de sesión del usuario de destino, incluidos el directorio personal y los archivos de inicio. Usa exit para salir de un intérprete iniciado con su. sudo -i abre un intérprete de inicio de sesión de root; sudo -s abre un intérprete de root. Son útiles para una serie de tareas de administración relacionadas, pero todos los comandos de ese intérprete tienen privilegios elevados hasta que sales.
Sudo comprueba su política antes de ejecutar el comando y registra el intento. Los registros pueden ir al registro de systemd, a /var/log/auth.log en sistemas de la familia Debian o a /var/log/secure en sistemas de la familia Red Hat. sudo -l muestra los comandos que tu cuenta puede ejecutar. El permiso para usar sudo depende de la política, no de conocer la contraseña de otra persona.
Comprende la autenticación
De forma predeterminada, sudo pide la contraseña del usuario que lo ejecuta, no la de root. La política puede cambiar ese comportamiento. La marca de tiempo de autenticación de sudo en su proyecto de origen dura cinco minutos de forma predeterminada; las distribuciones pueden configurar otro valor, como 15 minutos. La marca de tiempo normalmente se aplica dentro de ese terminal. Ejecuta sudo -k para invalidarla cuando termines.
Ubuntu normalmente comienza sin una contraseña de root utilizable y añade al usuario de la instalación a sudo. Fedora y los sistemas de la familia Red Hat suelen usar wheel. Un intento denegado puede indicar que el usuario no está en el archivo sudoers; el intento queda registrado.
Ejecuta la operación de escritura con sudo
Este comando falla cuando tu cuenta normal no puede escribir en /etc/hosts:
sudo echo "192.0.2.10 test.local" >> /etc/hosts
Tu intérprete actual abre el archivo para >> antes de que sudo se ejecute. Solo echo recibe permisos de root, y echo no es el programa que abre el destino. Asigna la tarea de escritura a un proceso con privilegios elevados:
echo "192.0.2.10 test.local" | sudo tee -a /etc/hosts
Aquí tee abre el archivo protegido como root. Su opción -a añade al final; omitirla sustituiría el contenido del archivo. Para una edición interactiva, sudoedit /etc/hosts, también escrito sudo -e /etc/hosts, ejecuta tu editor con tu identidad y se encarga de actualizar el archivo protegido.
Detecta el trabajo propiedad de root
Después de sudo mkdir ~/project, inspecciona el resultado con ls -ld ~/project. El directorio está en tu directorio personal, pero fue creado por root. Por tanto, sus permisos de propietario se aplican a root, mientras que tu cuenta puede tener solo acceso de lectura y ejecución. Restablece el propietario deseado con sudo chown alice: ~/project cuando el proyecto pertenezca a Alice. Los dos puntos finales también seleccionan el grupo de inicio de sesión de Alice. Después, la edición y la creación normales de archivos pueden ejecutarse bajo la cuenta de Alice.
Puntos clave
susuele pedir la contraseña del usuario de destino; sudo suele pedir la tuya.- Usa
sudo -lpara consultar los comandos permitidos ysudo -kpara invalidar la autenticación recordada. - La redirección del intérprete ocurre antes de sudo; eleva los privilegios del programa que abre el archivo protegido.
sudoeditpermite que tu propio editor trabaje sobre una copia del archivo protegido.- Un comando con privilegios elevados puede crear archivos propiedad de root dentro de tu directorio personal.
2.2 Concede permisos de sudo mediante la política de sudoers
Una regla de sudo decide quién puede ejecutar una acción, en qué sistema anfitrión y con qué identidad. Conceder a un equipo una acción de administración puede cubrir sus necesidades sin darle control ilimitado sobre la máquina.
Lee las partes de una regla
El patrón básico es who where = (as_whom) what. Por ejemplo:
alice ALL=(ALL:ALL) ALL
%sudo ALL=(ALL:ALL) ALL
La primera regla permite a Alice ejecutar cualquier comando en cualquier sistema anfitrión como cualquier usuario y grupo. La segunda concede los mismos permisos al grupo sudo; % indica un nombre de grupo. Una regla habitual de la familia Red Hat es %wheel ALL=(ALL) ALL.
Para conceder a Alice todos los permisos de administrador mediante una regla existente de la distribución, ejecuta sudo usermod -aG sudo alice en Debian o Ubuntu, o utiliza wheel en Fedora y sistemas relacionados. Alice debe iniciar una sesión nueva para que la pertenencia llegue a su sesión. La opción -a es importante: sin ella, -G sustituye sus otros grupos suplementarios.
Edita y comprueba la política
El archivo principal es /etc/sudoers; puede haber reglas adicionales en /etc/sudoers.d/. Usa sudo visudo o un archivo específico:
sudo visudo -f /etc/sudoers.d/webteam
visudo bloquea el archivo de política durante la edición y comprueba su sintaxis antes de guardarlo. Una política incorrecta puede impedir que los administradores usen sudo. Llama al archivo webteam, no webteam.conf: el tratamiento de directorios incluidos de sudo omite los nombres que contienen un punto o terminan en ~.
Los archivos del directorio incluido se leen por orden de nombre. Cuando varias reglas coinciden, la última que coincide determina el resultado; la regla que parece más específica no prevalece necesariamente. La inclusión suele estar cerca del final de la política principal, por lo que un archivo adicional puede afectar a una regla escrita antes.
Concede una acción exacta
Un equipo que mantiene un servicio web podría recibir:
%webteam ALL=(root) /usr/bin/systemctl restart nginx
Un miembro puede ejecutar sudo systemctl restart nginx. La regla especifica la ruta completa del comando y sus argumentos. No autoriza systemctl stop nginx ni bash. Comprueba los permisos efectivos con sudo -l; un administrador puede inspeccionar la política de Bob con sudo -l -U bob.
El programa permitido también importa. Un intérprete de root puede hacer cualquier cosa. Los editores y paginadores pueden iniciar intérpretes, y cp o tee sin restricciones pueden sobrescribir configuraciones protegidas. Por tanto, una lista de comandos aparentemente corta puede conceder control completo.
Decide si se necesita una contraseña
NOPASSWD: elimina la solicitud de autenticación para un comando que coincida:
backup ALL=(root) NOPASSWD: /usr/local/bin/backup.sh
Esto puede servir para una tarea automatizada. El guion debe estar bajo el control de root: si backup puede reescribirlo, la cuenta puede sustituir su contenido por cualquier comando de root. Mantén la acción permitida limitada y protege también el guion.
Las líneas Defaults cambian la configuración de la política. Defaults timestamp_timeout=10 establece una marca de tiempo de autenticación de diez minutos; Defaults logfile=/var/log/sudo.log selecciona un archivo de registro adicional. Estos ajustes controlan el comportamiento de sudo, mientras que las reglas de comandos controlan las acciones que autoriza.
Puntos clave
- Una regla de sudoers especifica quién, el sistema anfitrión, la identidad de destino y el comando permitido.
- Edita la política con
visudopara proteger el archivo mediante el bloqueo y la comprobación de sintaxis. - Un comando exacto con argumentos puede autorizar una acción sin autorizar un intérprete de comandos.
- Protege los guiones utilizados por reglas
NOPASSWDfrente a cambios de la cuenta que los ejecuta. - Los nombres que contienen un punto se omiten en
/etc/sudoers.d/. - Cuando coinciden varias reglas, su orden importa.
3Crea y gestiona cuentas de usuario y grupos
La configuración de una cuenta incluye más que un nombre de inicio de sesión: necesita un identificador de usuario, grupos, un directorio personal, un intérprete y una configuración de autenticación. Estos datos también cambian cuando las personas cambian de función o se marchan. La gestión de grupos facilita el acceso del equipo, pero las sesiones en ejecución conservan las identidades que ya cargaron. Recorre la creación, los cambios posteriores y la eliminación, y comprueba tanto los registros de cuentas como los archivos que esos registros identifican.
3.1 Crea cuentas de usuario con useradd y adduser
Crear una cuenta configura una identidad, un entorno de inicio de sesión y, a menudo, un directorio personal. Elegir las opciones explícitamente hace que el resultado sea predecible en distintas distribuciones.
Crea una cuenta normal
Supongamos que el grupo developers ya existe. Crea la cuenta de Priya y establece su contraseña con dos comandos:
sudo useradd -m -s /bin/bash -c "Priya Shah" -G developers priya
sudo passwd priya
-m crea /home/priya y copia los archivos iniciales de /etc/skel. -s /bin/bash selecciona Bash como intérprete de inicio de sesión y -c proporciona el comentario. -G developers añade la pertenencia a un grupo suplementario; varios nombres de grupo forman una lista separada por comas y sin espacios. La cuenta normalmente también recibe un grupo principal privado.
El primer comando añade registros de cuenta a /etc/passwd y /etc/shadow, y registros de grupo según sea necesario a /etc/group y /etc/gshadow. Su campo de contraseña inicial está bloqueado, a menudo con ! o !!. La cuenta existe antes de tener una contraseña utilizable. passwd priya establece esa contraseña; su solicitud evita que la contraseña aparezca en la línea de comandos.
Comprende los valores predeterminados de las distribuciones
useradd es el comando de bajo nivel para crear cuentas que se utiliza en las distribuciones de Linux. Debian y Ubuntu también proporcionan un guion interactivo adduser que pide datos y crea un directorio personal. En los sistemas de la familia Red Hat, adduser es otro nombre para useradd, por lo que no ofrece el mismo proceso interactivo.
Sin opciones explícitas, useradd depende de los valores predeterminados locales. Los valores de la familia Red Hat suelen crear un directorio personal; los de Debian y Ubuntu no lo hacen a menos que se indique -m. El intérprete predeterminado también puede variar. Consulta useradd -D para ver valores como la ubicación base de los directorios personales y el intérprete. /etc/default/useradd y /etc/login.defs proporcionan ajustes como los rangos de UID, los grupos privados y la vigencia de las contraseñas.
Indica otro directorio personal o identidad
Las opciones útiles describen partes distintas de la cuenta:
| Opción | Finalidad |
|---|---|
-u 1500 | Elegir un UID |
-g staff | Seleccionar un grupo principal existente |
-d /data/priya | Establecer la ruta del directorio personal |
-e 2026-12-31 | Establecer una fecha de caducidad de la cuenta |
-r | Crear una cuenta del sistema |
Una ruta de directorio personal en el registro no crea el directorio por sí misma. Combina -d con -m cuando haya que crear el nuevo directorio personal. En Debian, omitir -m puede dejar una cuenta por lo demás válida sin un directorio personal que utilizar al iniciar sesión.
Para una identidad de servicio, sudo useradd -r -s /usr/sbin/nologin backupsvc solicita un UID del sistema y un intérprete no interactivo. Las cuentas del sistema no tienen directorio personal de forma predeterminada. El intérprete de acceso denegado impide iniciar una sesión interactiva ordinaria bajo esa identidad.
Verifica la configuración
Ejecuta getent passwd priya, id priya y ls -la /home/priya. Comprueba la ruta del directorio personal, el intérprete, el grupo principal, los grupos adicionales y los archivos ocultos copiados. /etc/skel es una plantilla: añadir .bash_aliases allí afecta a la creación posterior de directorios personales, no a los que ya existen. Usa nombres de cuenta sencillos en minúsculas con dígitos, guiones o guiones bajos después de la primera letra; muchas herramientas rechazan o gestionan mal los espacios y los nombres inusuales.
Puntos clave
- Usa
useradd -mpara crear un directorio personal y copiar/etc/skel. - Establece la contraseña inicial por separado con
passwd. -gelige un grupo principal;-Gelige grupos suplementarios.- El
adduserinteractivo de Debian difiere del comando del mismo nombre de la familia Red Hat. useradd -rcrea una cuenta del sistema; un intérprete de acceso denegado impide iniciar una sesión interactiva.- Verifica el registro de la cuenta, los grupos y el directorio personal después de la creación.
3.2 Gestiona contraseñas y modifica o elimina cuentas
Una cuenta puede necesitar una contraseña nueva, otro directorio personal, un bloqueo temporal del acceso o una eliminación permanente. Estas operaciones cambian partes distintas de la cuenta, así que identifica el resultado deseado antes de elegir un comando.
Cambia una contraseña o establece su vigencia
Ejecuta passwd para cambiar tu propia contraseña, normalmente después de introducir la actual. Un administrador usa sudo passwd priya para establecer la contraseña de Priya sin conocer la anterior. Las comprobaciones de calidad pueden rechazar contraseñas cortas o simples.
sudo passwd -S priya informa del estado de la contraseña. sudo passwd -l priya bloquea la contraseña colocando ! delante de su resumen, y sudo passwd -u priya la desbloquea. sudo passwd -e priya hace caducar la contraseña para que el usuario deba elegir otra en el siguiente inicio de sesión. Hacer caducar una contraseña es útil cuando se entrega una temporal.
Usa sudo chage -l priya para consultar las fechas de vigencia. Por ejemplo:
sudo chage -M 90 -m 1 -W 7 priya
La vigencia máxima es de 90 días, la mínima entre cambios es de un día y los avisos comienzan siete días antes de la caducidad. Estos valores se guardan en /etc/shadow. sudo chage -E 2026-12-31 priya establece la fecha de caducidad de toda la cuenta, por separado de la vigencia de su contraseña.
Bloquea el acceso sin eliminar registros
El bloqueo de una contraseña impide la autenticación mediante contraseña. No elimina las claves SSH ni detiene todos los demás métodos de autenticación. Para deshabilitar los futuros inicios de sesión de la cuenta de un usuario que se marcha, bloquea la contraseña y establece una fecha de caducidad de la cuenta ya pasada, como con sudo usermod -e 1 priya. El valor 1 es un recuento de días de enero de 1970, por lo que esa fecha ya ha pasado. Esto no termina los procesos que ya están en ejecución; requieren atención por separado.
Modifica una cuenta existente
usermod puede cambiar el comentario con -c, el intérprete con -s y la ruta del directorio personal con -d. Combina -d y -m para mover el contenido del directorio personal, como en sudo usermod -d /data/priya -m priya. -l newname cambia el nombre de inicio de sesión, pero el directorio personal y el grupo privado conservan sus nombres actuales a menos que también se cambien. -L y -U bloquean y desbloquean la contraseña.
Para añadir la pertenencia a un grupo suplementario, ejecuta sudo usermod -aG developers priya. La opción -a indica que se añada. Sin ella, usermod -G developers priya sustituye toda la lista de grupos suplementarios de Priya; una pertenencia previa a sudo puede desaparecer. Su grupo principal es un ajuste independiente controlado por -g.
Elimina la cuenta y gestiona sus archivos
sudo userdel priya elimina los registros de la cuenta, pero conserva el directorio personal. sudo userdel -r priya también elimina el directorio personal y el buzón de correo. El comando normal se niega a eliminar la cuenta mientras el usuario tenga procesos en ejecución.
Los archivos situados en otras partes conservan su UID numérico de propietario. Después de eliminar la cuenta, un listado puede mostrar 1003 como propietario porque no hay ningún nombre asociado a ese número. Reutilizar ese UID para una cuenta nueva da a esa cuenta la propiedad de los archivos antiguos. Usa sudo find / -nouser para localizar archivos sin un usuario correspondiente y después archívalos o reasígnalos. Cuando alguien se marcha, bloquea primero los futuros inicios de sesión, atiende la actividad en ejecución y conserva los archivos necesarios; después elimina la cuenta cuando esas tareas estén completas.
Puntos clave
- El bloqueo de contraseña, la caducidad de contraseña y la caducidad de cuenta cumplen funciones diferentes.
- Usa
chagepara consultar o cambiar las fechas de vigencia de la contraseña y de caducidad de la cuenta. - Mantén
-aconusermod -Gcuando añadas grupos sin eliminar las pertenencias existentes. - Cambiar un nombre de inicio de sesión no cambia el nombre del directorio personal ni del grupo privado.
userdel -relimina el directorio personal y el buzón de correo, pero los archivos de otras ubicaciones conservan el UID anterior.- Archiva o reasigna los archivos restantes antes de que ese UID pueda reutilizarse.
- La caducidad de la cuenta no termina los procesos que ya están en ejecución.
3.3 Crea grupos y gestiona sus miembros
Una carpeta compartida necesita un grupo, miembros y permisos de directorio que permitan trabajar a esos miembros. La base de datos de cuentas y los grupos de un intérprete que ya está en ejecución pueden discrepar temporalmente después de un cambio de pertenencia.
Crea y mantén el grupo
sudo groupadd developers asigna el siguiente GID disponible. Añade -g 1500 para elegir un GID concreto o -r para crear un grupo del sistema. Compruébalo con getent group developers; un último campo vacío significa que todavía no hay miembros suplementarios en la lista.
Añade un miembro con cualquiera de los dos comandos:
sudo usermod -aG developers priya
sudo gpasswd -a priya developers
sudo gpasswd -d priya developers elimina esa pertenencia suplementaria. sudo gpasswd -M alice,bob developers establece toda la lista de miembros y sustituye la anterior. Elige entre añadir, eliminar o sustituir según el cambio deseado.
Actualiza los grupos de una sesión
Después de añadir a Priya, id priya consulta la base de datos de cuentas y muestra la nueva pertenencia inmediatamente. id sin argumentos en su intérprete existente informa de los grupos que ese intérprete está utilizando realmente. Esos grupos se establecieron al comenzar la sesión.
Un nuevo inicio de sesión carga la nueva lista. newgrp developers ofrece otra vía: inicia un nuevo intérprete con developers como grupo principal. Usa exit para salir de ese intérprete. Cuando diagnostiques una operación denegada, inspecciona la identidad de la sesión que intenta realizarla, no solo la entrada de la base de datos.
Renombra o elimina un grupo
sudo groupmod -n devteam developers cambia el nombre, pero conserva el GID. Los archivos existentes siguen haciendo referencia al mismo grupo numérico. En cambio, sudo groupmod -g 1600 developers cambia el número del grupo. Los archivos que aún tienen el GID anterior 1005 requieren atención; localízalos con sudo find / -gid 1005 y después usa chgrp para asignarles el grupo deseado.
sudo groupdel developers se niega a eliminarlo si un usuario existente todavía lo tiene como grupo principal. Establece otro grupo principal con usermod -g antes de eliminarlo. Eliminar el nombre de un grupo no borra los archivos que tienen su antiguo GID.
Configura una carpeta de equipo
Para el equipo web de Priya y Kenji:
sudo groupadd webteam
sudo usermod -aG webteam priya
sudo usermod -aG webteam kenji
sudo mkdir /srv/web
sudo chgrp webteam /srv/web
sudo chmod 2770 /srv/web
Después de iniciar sesiones nuevas, ambos usuarios pueden crear archivos en /srv/web. El modo 2770 da rwx al propietario y al grupo, --- a otros, y establece SGID en el directorio. Un archivo nuevo adopta el grupo webteam, incluso cuando el grupo principal de quien lo crea es su grupo privado. Los subdirectorios nuevos también heredan SGID.
El directorio permite aprovechar la pertenencia al equipo e impide la entrada a otros, pero cada archivo sigue teniendo su propio modo. Con la solicitud habitual de archivo 666, una umask de 002 de quien lo crea da escritura al grupo, mientras que 022 deja al grupo con solo lectura. Si los miembros del equipo necesitan editar los archivos de los demás, comprueba estos valores predeterminados de creación además de la carpeta.
Puntos clave
- Usa
groupaddpara crear grupos ygpasswdousermod -aGpara añadir miembros. - Los cambios de pertenencia en la base de datos llegan a una sesión existente después de iniciar sesión de nuevo o abrir un intérprete nuevo adecuado.
- Renombrar un grupo conserva su GID; cambiarlo deja pendientes de corrección los GID de los archivos existentes.
- No se puede eliminar un grupo mientras una cuenta siga utilizándolo como grupo principal.
- Un directorio compartido con SGID asigna su grupo a los archivos nuevos; el modo de cada archivo sigue controlando su edición.
4Consulta y modifica la propiedad y los permisos
El acceso depende de dos preguntas relacionadas: qué usuario o grupo es propietario de un objeto y qué permiten sus bits de permisos. Un listado en formato largo proporciona la información necesaria, pero los mismos bits cumplen funciones distintas en un archivo y en un directorio. Por eso, leer un documento, entrar en una carpeta y eliminar un nombre requieren comprobaciones diferentes. Usa chmod para establecer las acciones permitidas y chown o chgrp para asignar las identidades a las que se aplican.
4.1 Consulta la propiedad y los permisos en un listado
Un listado en formato largo reúne en una línea la información necesaria para decidir el acceso. Lee el propietario y el grupo junto con los nueve bits de permisos; los bits por sí solos no indican qué permisos recibe una persona concreta.
Interpreta un listado en formato largo
-rw-r----- 1 priya developers 2048 Oct 22 09:15 report.txt
El primer campo contiene el tipo de archivo y los permisos. Los campos siguientes indican el número de enlaces duros, el usuario propietario, el grupo propietario, el tamaño en bytes, la fecha y hora de modificación y el nombre. Este archivo normal pertenece a Priya y al grupo developers. Su tamaño es de 2048 bytes; la fecha y hora mostradas corresponden a la última modificación del contenido.
El primer carácter es - para un archivo normal, d para un directorio o l para un enlace simbólico. También puedes encontrar c y b para dispositivos de caracteres y de bloques, p para una tubería con nombre y s para un socket.
Divide las nueve posiciones siguientes en tres ternas:
| Clase | Bits en este ejemplo | Acceso al archivo normal |
|---|---|---|
| Propietario | rw- | Leer y modificar el contenido |
| Grupo | r-- | Leer el contenido |
| Otros | --- | Sin acceso mediante esta clase |
En cada terna, las posiciones significan lectura, escritura y ejecución, en ese orden. Un guion indica un permiso ausente, no una posición vacía que debas saltarte al contar.
Elige exactamente una clase
Para una comprobación ordinaria de permisos, Linux pregunta:
- ¿Coincide el usuario del proceso con el propietario del archivo? Usa la terna del propietario.
- Si no, ¿coincide alguno de sus grupos con el grupo del archivo? Usa la terna del grupo.
- En caso contrario, usa la terna de otros.
Las clases no se suman. Supongamos que Priya es propietaria de un archivo cuya cadena completa de tipo y modo es ----rw-rw-. Su terna de propietario es ---, por lo que no puede leerlo mediante los bits ordinarios, aunque el grupo y otros tengan rw-. Como propietaria, puede cambiar el modo. Una terna menos restrictiva para el grupo u otros no sustituye la terna seleccionada del propietario.
Root puede eludir las comprobaciones ordinarias de permisos de lectura y escritura. Para ejecutar un archivo de programa normal, incluso root necesita que tenga al menos un bit de ejecución. Por tanto, comprobar un modo requiere conocer tanto la identidad del usuario como la operación que se intenta realizar.
Inspecciona directorios y números
ls -ld /srv/web lista el propio directorio. Sin -d, ls -l /srv/web normalmente lista las entradas que contiene, lo que puede distraerte de una restricción en el directorio. ls -a incluye nombres ocultos, mientras que ls -n muestra propietarios y grupos numéricos. Los archivos almacenan UID y GID; si se ha eliminado una cuenta o un grupo, un listado ordinario también puede mostrar el número que permanece.
Para obtener un informe compacto, ejecuta:
stat -c '%A %a %U %G %n' report.txt
Puede mostrar -rw-r----- 640 priya developers report.txt, con las letras y los dígitos octales uno al lado del otro. Un + después de las letras indica entradas adicionales de lista de control de acceso. Un enlace simbólico suele mostrar lrwxrwxrwx; Linux usa los permisos del destino para el acceso, no los bits mostrados del enlace.
Puntos clave
- Lee primero el tipo de archivo y después las ternas de propietario, grupo y otros.
- La primera clase que coincide proporciona los permisos ordinarios; las clases no se combinan.
- Los archivos almacenan UID y GID numéricos aunque un listado muestre nombres.
ls -ldinspecciona el propio directorio ystatpuede mostrar los modos tanto en letras como en octal.
4.2 Explica qué permiten la lectura, la escritura y la ejecución
La lectura, la escritura y la ejecución describen acciones diferentes sobre archivos y directorios. Un directorio almacena nombres que conducen a archivos, por lo que modificar el contenido de un archivo y eliminar su nombre requieren comprobaciones de permisos distintas.
Relaciona el bit con el objeto
| Bit | Archivo normal | Directorio |
|---|---|---|
r | Leer o copiar el contenido | Listar los nombres de las entradas |
w | Modificar, sobrescribir o añadir contenido | Crear, eliminar o renombrar entradas, con x |
x | Ejecutar como programa | Entrar y acceder a las entradas por su nombre |
Se puede añadir contenido a un archivo con permiso de escritura pero sin permiso de lectura sin leerlo. Por ejemplo, un intérprete puede abrir un registro en el que se puede escribir para echo text >> log.txt aunque cat log.txt falle. Un editor suele necesitar lectura y escritura porque primero carga el contenido existente.
Un guion ejecutado como ./backup.sh necesita permiso de ejecución y debe poder ser leído por su intérprete. Si el guion es legible pero carece de ejecución, bash backup.sh todavía puede leerlo y ejecutarlo: Bash es el programa ejecutable en ese comando.
Distingue entre listar y buscar
El permiso de lectura de un directorio permite ver nombres. El permiso de ejecución, también llamado permiso de búsqueda, permite acceder a una entrada por su nombre. Con lectura pero sin ejecución, ls puede mostrar los nombres, mientras que ls -l no puede obtener sus detalles y puede mostrar errores y signos de interrogación. No puedes abrir los archivos indicados a través de ese directorio.
Con ejecución pero sin lectura ocurre lo contrario: puedes acceder a notes.txt si ya conoces su nombre exacto, pero no puedes listar el directorio para descubrir los nombres. El modo del propio archivo debe permitir el acceso solicitado.
Recorre toda la ruta
Para leer /home/priya/notes/public.txt, Kenji necesita permiso de ejecución en cada directorio de la ruta y permiso de lectura en el archivo. Si /home/priya tiene el modo 700, su terna de otros es ---; Kenji se detiene ahí aunque public.txt tenga el modo 644. Añadir más permiso de lectura al archivo no puede corregir la falta de un bit de búsqueda en un directorio superior.
Usa ls -ld /home/priya /home/priya/notes para inspeccionar los propios directorios. En cada nivel, elige la clase que se aplica a Kenji y comprueba su bit de ejecución. La clase correspondiente puede cambiar de un directorio a otro porque sus propietarios y grupos pueden ser distintos.
Predice la eliminación y el cambio de nombre
Eliminar un archivo elimina una entrada de directorio. Kenji necesita escritura y ejecución en el directorio que lo contiene, no escritura en el archivo. En un directorio ordinario con permiso de escritura y sin bit de permanencia, puede eliminar el archivo de solo lectura de Priya. A la inversa, ser propietario de un archivo no le permite eliminarlo de un directorio donde carece de permiso de escritura.
Quitar la escritura de un archivo es útil para proteger su contenido frente a modificaciones, pero no protege su nombre frente a la eliminación. El bit de permanencia de un directorio añade una restricción basada en la propiedad para eliminar y renombrar en carpetas compartidas con permiso de escritura. El acceso al archivo y el acceso a la entrada de directorio responden a preguntas diferentes.
Puntos clave
r,wyxen un archivo controlan su lectura, modificación y ejecución.ren un directorio lista nombres;xpermite acceder a entradas;wconxmodifica entradas.- Acceder a un archivo requiere ejecución en cada directorio de su ruta.
- Un guion legible puede pasarse a su intérprete aunque no tenga su propio bit de ejecución.
- La eliminación de un archivo depende de los permisos de su directorio, con una restricción adicional en los directorios con bit de permanencia.
4.3 Cambia permisos con chmod
Usa chmod para cambiar los permisos de un archivo o directorio del que eres propietario. Root también puede cambiarlos. Tener acceso de escritura mediante un grupo te permite modificar el contenido del archivo, pero no te convierte en propietario ni te permite establecer su modo.
Haz un cambio simbólico concreto
Un modo simbólico tiene una clase, un operador y bits. Las clases son u para el propietario, g para el grupo, o para otros y a para las tres. + añade permisos, - los elimina y = establece exactamente los de esa clase.
chmod u+x deploy.sh
chmod go-w notes.txt
chmod u=rw,g=r,o= report.txt
El primer comando añade solo el bit de ejecución del propietario. El segundo elimina la escritura del grupo y de otros y conserva sus demás bits. El tercero da lectura y escritura al propietario, lectura al grupo y ningún permiso a otros: rw-r-----.
Especifica la clase cuando quieras un cambio preciso. Si la omites, como en chmod +w notes.txt, la umask restringe qué bits de clase se ven afectados. Con la umask 022, ese comando añade escritura solo para el propietario; chmod a+w notes.txt incluye explícitamente las tres clases.
Convierte cada terna en un dígito octal
La lectura tiene valor 4, la escritura 2 y la ejecución 1. Suma los valores presentes en cada clase:
| Dígito | Bits | Cálculo |
|---|---|---|
| 7 | rwx | 4 + 2 + 1 |
| 6 | rw- | 4 + 2 |
| 5 | r-x | 4 + 1 |
| 4 | r-- | 4 |
| 0 | --- | Ninguno |
Para rw-r-----, divide en rw-, r--, ---: los dígitos son 6, 4, 0. chmod 640 report.txt establece esos nueve bits ordinarios, independientemente del modo ordinario anterior. Invierte el proceso para 750: 7 da rwx, 5 da r-x y 0 da ---, formando rwxr-x---.
Elige un modo final útil
El modo 600 mantiene un archivo privado para su propietario. El modo 644 permite a otros usuarios leer un archivo normal. El modo 664 también permite editar al grupo. Los directorios privados suelen usar 700, los directorios legibles por el grupo 750 y los directorios en los que el grupo puede escribir 770. Los programas o directorios públicos suelen usar 755.
Los mismos dígitos permiten acciones útiles distintas según el objeto. Aplicar 644 a un directorio quita la ejecución a todas las clases. Ni siquiera su propietario puede volver a entrar en él ni abrir archivos a través de él. Usa un modo de directorio con permiso de búsqueda para las personas que necesitan acceso.
Aplica cambios a todo un árbol
chmod -R 755 site/ también hace ejecutables todos los archivos normales. Para un árbol que contiene directorios y documentos normales, usa la ejecución condicional:
chmod -R u=rwX,go=rX site/
La X mayúscula añade ejecución a los directorios y a los archivos que ya tienen algún bit de ejecución. Los archivos no ejecutables pasan a 644; los directorios pasan a 755. Los archivos ejecutables existentes conservan el acceso de ejecución. Esto permite recorrer el árbol sin marcar cada documento como programa. Los bits especiales son independientes: GNU chmod conserva SUID y SGID en los directorios a menos que los desactives explícitamente, por ejemplo con chmod g-s site/.
Puntos clave
- Solo el propietario o root pueden cambiar el modo de un archivo.
- Los operadores simbólicos
+y-cambian los bits seleccionados;=establece exactamente una clase. - Los modos octales suman lectura 4, escritura 2 y ejecución 1 para cada clase.
- Si se omite la clase en el modo simbólico, la umask influye en el resultado.
- Los directorios necesitan permiso de búsqueda para los usuarios que deban acceder a sus entradas.
- La
Xmayúscula permite cambios recursivos sin hacer ejecutables todos los archivos normales.
4.4 Cambia la propiedad con chown y chgrp
La propiedad identifica al usuario y al grupo cuyas ternas de permisos se comprobarán. Una propiedad correcta puede arreglar una carpeta de trabajo creada accidentalmente con sudo, sin conceder un acceso más amplio a todos los demás.
Interpreta las formas de chown
chown puede cambiar un usuario, un grupo o ambos:
| Comando | Resultado |
|---|---|
sudo chown kenji report.txt | Cambiar el propietario; conservar el grupo |
sudo chown kenji:webteam report.txt | Cambiar propietario y grupo |
sudo chown :webteam report.txt | Cambiar solo el grupo |
sudo chown kenji: report.txt | Establecer el propietario y el grupo de inicio de sesión de Kenji |
chgrp webteam report.txt | Cambiar solo el grupo |
Los identificadores numéricos también funcionan, como en sudo chown 1002:1005 report.txt. Los nombres se resuelven en números; el archivo almacena esos números.
Solo root puede transferir un archivo a otro usuario propietario. Un propietario puede cambiar el grupo de su propio archivo a uno al que pertenezca. Así, Priya puede usar chgrp webteam plan.txt si es propietaria del archivo y pertenece a webteam. Para asignarlo a finance también tendría que pertenecer a ese grupo. Que otro miembro pueda editar el archivo no le concede la capacidad de cambiar su propietario o modo.
Repara una carpeta creada accidentalmente como propiedad de root
Kenji ejecutó un comando de creación con sudo. El listado es:
drwxr-xr-x 2 root root 4096 Oct 22 10:02 /home/kenji/app
No es el propietario ni utiliza el grupo propietario, por lo que recibe el r-x de otros. Puede inspeccionar la carpeta y entrar en ella, pero no puede crear entradas porque falta la escritura. Dar permiso de escritura en la carpeta a todos concedería más acceso del que necesita su proyecto.
Si el proyecto pertenece a Kenji, sudo chown -R kenji: ~/app restablece su propiedad y su grupo de inicio de sesión en toda la carpeta. Su terna de propietario es ahora rwx, por lo que puede crear archivos. Inspecciona la ruta de destino antes de cualquier comando recursivo de cambio de propiedad: aplicarlo a /etc o /usr puede impedir el funcionamiento del sistema. -R incluye el directorio y todo lo que hay por debajo.
Predice la propiedad después de operaciones con archivos
Un archivo recién creado pertenece al usuario del proceso que lo crea. Su grupo suele proceder del grupo principal de ese proceso o de un directorio padre con SGID. Por tanto, crear una copia nueva ordinaria con cp hace que quien lo ejecuta sea su propietario. Un mv dentro del mismo sistema de archivos cambia la ubicación de un archivo existente y conserva su propietario y grupo. Las opciones de copia que conservan la propiedad tienen un comportamiento distinto al de una copia nueva ordinaria.
Esta distinción explica por qué mover un archivo antiguo a una carpeta compartida no le aplica la regla de herencia de grupo de esa carpeta. SGID se aplica en el momento de la creación; usa chgrp cuando haya que cambiar el grupo de un archivo existente.
Combina identidad y acceso
Asignar webteam con chgrp selecciona a quién representa la clase de grupo. No añade lectura ni escritura al grupo. Usa chmod para conceder los bits necesarios después de elegir el grupo. Cambiar la propiedad de un ejecutable también puede desactivar los privilegios SUID o SGID; inspecciona su modo resultante cuando esos bits importen.
Puntos clave
chownasigna el usuario o grupo propietario;chgrpcambia solo el grupo.- Solo root puede cambiar el usuario propietario.
- Los propietarios pueden asignar sus archivos a grupos a los que pertenecen.
- Una copia nueva suele pertenecer a quien la crea; un movimiento dentro del mismo sistema de archivos conserva la propiedad.
- La herencia SGID se aplica a los archivos recién creados, no a un archivo existente movido al directorio.
5Controla los permisos predeterminados y especiales y resuelve problemas de acceso
Los archivos nuevos heredan la configuración de creación, mientras que los bits de permisos especiales cambian el comportamiento de los programas o de los directorios compartidos. Una carpeta de equipo funciona solo cuando concuerdan su grupo, la herencia del grupo propietario y los modos de los archivos nuevos. Cuando falla el acceso, sigue al usuario real y la ruta hasta encontrar el primer permiso que falta. Ese diagnóstico te permite corregir el permiso necesario y mantener restringidos los datos privados y los privilegios de administrador.
5.1 Establece permisos predeterminados con umask
Los permisos de un archivo nuevo proceden de dos valores: el modo que solicita el programa que lo crea y la umask del proceso. La máscara elimina bits solicitados; nunca añade permisos que el programa no haya pedido.
Empieza por la solicitud de creación
Los editores y la redirección del intérprete suelen solicitar 666, o rw-rw-rw-, para archivos normales nuevos. La creación de directorios suele solicitar 777, o rwxrwxrwx. Una umask es un conjunto de bits que se desactivan de esa solicitud. Un bit se conserva solo cuando la solicitud lo incluye y la máscara no.
Para la umask 022, conserva todos los bits solicitados del propietario, elimina la escritura del grupo y elimina la escritura de otros. Un archivo pasa a 644; un directorio pasa a 755. Interpreta cada dígito como bits, no como una cantidad decimal ordinaria.
| Máscara | Archivo solicitado como 666 | Directorio solicitado como 777 |
|---|---|---|
| 022 | 644 | 755 |
| 027 | 640 | 750 |
| 077 | 600 | 700 |
| 002 | 664 | 775 |
| 033 | 644 | 744 |
Con 027, el grupo pierde la escritura mientras que otros pierden los tres bits. Es útil cuando un equipo debe leer los archivos nuevos, pero los usuarios ajenos al equipo no deben tener acceso. Con 002, la escritura del grupo permanece disponible; el grupo propietario del archivo sigue determinando quién la recibe.
Por qué falla la resta
Toma la solicitud de archivo 666 y la máscara 033. Cada 3 significa escritura más ejecución. Pero cada terna solicitada para el archivo es rw-: la ejecución ya está ausente. Desactivar escritura y ejecución deja r-- para el grupo y otros, por lo que el resultado es 644. Restar los dígitos produciría 633, lo que sugeriría erróneamente que pueden aparecer bits de ejecución.
Para una solicitud de directorio de 777, desactivar esos mismos bits da 744. Ese directorio carece de ejecución para el grupo y otros, por lo que esas clases no pueden acceder a sus entradas aunque puedan listar los nombres. Una máscara que da el modo de archivo deseado puede producir un resultado inconveniente para los directorios.
Consulta y establece tu máscara
Ejecuta umask para ver el ajuste actual, que a menudo se muestra con un cero inicial, como 0022. El cero inicial es parte del formato; Linux utiliza los nueve bits de permisos ordinarios. umask -S muestra los bits permitidos, como u=rwx,g=rx,o=rx para 022; un programa puede solicitar un subconjunto de esos bits.
umask 027 cambia el intérprete actual y los programas que este inicia heredan el valor. Los archivos existentes conservan sus modos. Usa chmod cuando un archivo ya creado necesite permisos diferentes.
Elige un valor predeterminado persistente
Una línea como umask 027 en ~/.profile o ~/.bashrc puede establecer el valor para los intérpretes que leen ese archivo de inicio. Los valores predeterminados del sistema pueden proceder de /etc/profile o de UMASK en /etc/login.defs. La distribución y la configuración de la cuenta determinan qué archivos se leen y cuándo.
Muchos sistemas usan 022, mientras que las configuraciones con grupos privados suelen usar 002 para los usuarios normales. Un compilador puede solicitar una salida ejecutable con el modo 777; con 022 pasa a 755. La solicitud de 666 de un editor de texto no tiene bits de ejecución, por lo que escribir un guion no lo hace ejecutable por sí mismo.
Puntos clave
- Un modo nuevo conserva los bits solicitados por el programa salvo que la umask los elimine.
- Las solicitudes para archivos normales suelen partir de 666; las de directorios suelen partir de 777.
- Aplica la máscara bit a bit; una resta de tipo decimal puede dar un resultado incorrecto.
- Cambiar la máscara afecta a las creaciones posteriores, no a los archivos existentes.
- Una máscara heredada del intérprete y el modo solicitado por un programa son valores independientes.
- Comprueba los resultados tanto para archivos como para directorios al elegir un valor predeterminado.
5.2 Utiliza SUID, SGID y el bit de permanencia
Tres bits especiales añaden comportamientos a los permisos ordinarios de propietario, grupo y otros. Su significado depende de si el objeto es un programa o un directorio.
Reconoce el dígito adicional
Un dígito octal inicial combina SUID 4, SGID 2 y el bit de permanencia 1. El modo 4755 es SUID más el modo ordinario 755. El modo 2770 es SGID más 770. El modo 3770 combina SGID y el bit de permanencia porque 2 más 1 es 3.
En un listado en formato largo, los bits comparten las posiciones de ejecución. Una s minúscula en la posición del propietario significa SUID y ejecución del propietario; una s minúscula en la posición del grupo significa SGID y ejecución del grupo. Una t minúscula en la posición de otros significa bit de permanencia y ejecución de otros. Una S o T mayúscula significa que el bit especial está presente, pero falta la ejecución en esa posición.
SUID y SGID en programas
SUID permite que un ejecutable se ejecute con la identidad efectiva del propietario del archivo. /usr/bin/passwd suele aparecer como -rwsr-xr-x root root: el programa puede actualizar los datos protegidos de contraseñas mientras controla qué contraseña de usuario puede cambiar quien lo ejecuta. Iniciarlo no da a esa persona un intérprete de root. Linux ignora SUID en guiones y directorios.
SGID en un ejecutable utiliza de forma similar la identidad de grupo del archivo. Estos bits conceden acceso controlado por el programa, por lo que importa su comportamiento. Nunca añadas SUID a un intérprete de comandos, un editor o un guion. Un administrador puede inventariar archivos normales con SUID mediante sudo find / -perm -4000 -type f 2>/dev/null; usa -perm -2000 para archivos SGID y compara los resultados con la configuración prevista del sistema.
SGID en un directorio de equipo
En un directorio, SGID hace que las entradas nuevas adopten el grupo del directorio y que los subdirectorios nuevos hereden SGID. Supongamos que /srv/web pertenece a root:webteam, tiene el modo 2770 y se muestra como drwxrws---. Priya tiene un grupo principal privado, pero pertenece a webteam. Cuando crea index.html dentro de este directorio, su grupo pasa a ser webteam.
Su modo ordinario sigue dependiendo de la creación. Con una solicitud de archivo de 666 y la umask 002, pasa a 664 y Kenji, otro miembro del equipo, puede editarlo. Con 022 pasa a 644, por lo que Kenji solo tiene acceso de lectura. SGID proporciona el grupo, no un bit de escritura adicional.
Directorios con bit de permanencia y eliminación
El bit de permanencia restringe la eliminación y el cambio de nombre: con el acceso necesario al directorio, una entrada puede ser eliminada por el propietario del archivo, el propietario del directorio o root. Esto hace que los directorios compartidos con permiso de escritura sean útiles sin permitir que los usuarios eliminen las entradas de los demás. /tmp y /var/tmp suelen usar 1777, que se muestra como drwxrwxrwt. El bit de permanencia no impide editar el contenido de los archivos cuando su modo lo permite. Linux lo ignora en archivos normales.
Establece los bits con chmod u+s prog, chmod g+s /srv/web o chmod o+t /srv/drop. Desactívalos con u-s, g-s u o-t. Con GNU chmod, chmod 755 /srv/web conserva un bit SGID existente en el directorio; usa chmod g-s /srv/web para desactivarlo explícitamente.
Puntos clave
- SUID utiliza la identidad del propietario de un archivo de programa; SGID en un ejecutable utiliza su identidad de grupo.
- SGID en un directorio da su grupo a los archivos nuevos y transmite SGID a los subdirectorios nuevos.
- Un directorio con bit de permanencia restringe la eliminación y el cambio de nombre según la propiedad.
- Una
sotminúscula incluye ejecución; unaSoTmayúscula indica que falta ejecución en esa posición. - La herencia de grupo mediante SGID y el permiso de escritura del archivo nuevo son independientes.
- GNU chmod conserva SGID en un directorio cuando se utiliza un modo de tres dígitos.
- El bit de permanencia protege las entradas frente a la eliminación, no el contenido editable frente a modificaciones.
5.3 Diagnostica problemas de permisos y aplica el principio de mínimo privilegio
Un error «Permiso denegado» identifica una operación fallida, pero no necesariamente un modo de archivo incorrecto. El bloqueo puede estar en los grupos de tu sesión, un directorio padre, el propio archivo o la propiedad dejada por un comando con privilegios elevados.
Sigue la identidad, la ruta, la clase y la operación
Empieza con id sin argumentos en la sesión afectada. Si se añadió un grupo recientemente, compara la lista activa con id username, que consulta la base de datos. Un nuevo inicio de sesión puede cargar la nueva pertenencia.
Después inspecciona toda la ruta:
namei -l /srv/reports/q3.txt
namei -l informa de los propietarios, grupos y modos de la ruta. También puedes inspeccionar cada directorio con ls -ld. En cada objeto, selecciona la primera clase que coincida: propietario, si no grupo y, en caso contrario, otros. Después pregunta qué necesita la operación que se intenta realizar. Leer requiere r en el archivo y permiso de búsqueda en todos los directorios padre. Crear, eliminar o renombrar una entrada requiere w y x en su directorio, con las restricciones del bit de permanencia cuando esté presente.
Encuentra la primera operación bloqueada
Kenji pertenece a finance e intenta ejecutar cat /srv/reports/q3.txt. Los objetos relevantes son:
drwxr-xr-x root root /srv
drwxr-x--- root finance /srv/reports
-rw------- maria finance /srv/reports/q3.txt
Kenji puede atravesar /srv usando la ejecución de otros. En /srv/reports, su pertenencia a finance selecciona el r-x del grupo, por lo que también puede atravesarlo. En q3.txt, no es Maria y la terna de finance es ---. El permiso que falta es la lectura del grupo en el archivo.
Si los miembros de finance deben leer el informe, Maria o root pueden ejecutar chmod g+r /srv/reports/q3.txt. El modo resultante es 640. Proporciona el permiso que falta sin dar escritura al grupo ni abrir el informe a otros. Un administrador puede probarlo con sudo -u kenji cat /srv/reports/q3.txt, ejecutando el comando como Kenji en lugar de probarlo como root.
Elige la corrección más pequeña
Una corrección adecuada puede consistir en añadir a alguien a un equipo, establecer lectura para el grupo, restablecer el propietario de un proyecto o añadir búsqueda en un directorio para la clase prevista. chmod -R 777 concede a todas las cuentas locales acceso de escritura en todo el árbol y hace ejecutables los archivos normales. Tampoco puede resolver todas las causas de un fallo de acceso.
Comprueba las causas habituales antes de editar un árbol grande: una nueva pertenencia inactiva, la falta de x en un directorio padre, trabajo propiedad de root creado con sudo y archivos nuevos cuya umask eliminó el acceso necesario para el equipo. Las unidades FAT32 y exFAT no almacenan UID, GID ni modos nativos de Linux; las opciones de montaje proporcionan esos valores, por lo que chmod o chown aplicados a cada archivo pueden fallar o no tener efecto.
Mantén privados los datos privados
Una clave privada SSH como ~/.ssh/id_ed25519 normalmente debe tener el modo 600; su directorio .ssh suele tener 700. SSH comprueba la protección de la clave privada y puede rechazar una clave demasiado accesible. /etc/shadow sigue siendo inaccesible para los usuarios normales. Los administradores con permisos completos de sudo pueden eludir la privacidad ordinaria de los archivos, así que mantén reducido ese grupo y concede acciones específicas cuando no sea necesaria la administración completa.
Puntos clave
- Comprueba la identidad y los grupos activos de la sesión afectada antes de cambiar modos de archivo.
- Inspecciona todos los directorios padre además del archivo de destino.
- Relaciona el permiso con la operación y utiliza el cambio necesario más pequeño.
- Prueba el resultado como el usuario afectado; una prueba como root puede ocultar la falta de un permiso ordinario.
- Los valores predeterminados de creación y los sistemas de archivos que no son de Linux pueden explicar modos inesperados.
Ejemplos de Usuarios, grupos y permisos en Linux
1Consulta una identidad y sus registros de cuenta
13 pasos
- 1IntroducciónEmpieza por la identidad que realiza el trabajo
Una solicitud de archivo procede de un proceso en ejecución, y ese proceso tiene una identidad de usuario y grupos. Consultarás la identidad de Alice, la relacionarás con los registros de cuentas y distinguirás las sesiones actuales de los datos de cuenta almacenados. Estas son las pistas que necesitas antes de decidir qué acceso reciben sus comandos.
- 2ExplicaciónUn número da sus privilegios a root
Linux utiliza un UID, no la escritura de un nombre, para identificar a un usuario. El UID 0 es root; las cuentas normales suelen comenzar en 1000. Los servicios suelen ejecutarse bajo cuentas del sistema limitadas con un intérprete de acceso denegado. Por tanto, un servicio no necesita el inicio de sesión de una persona ni todos los privilegios de root para realizar su trabajo.
- 3EjemploLee la salida de id de Alice
Alice ejecuta
idy ve:uid=1001(alice) gid=1001(alice) groups=1001(alice),27(sudo),1005(developers)El UID identifica a Alice. El GID es el de su grupo principal. La lista final incluye su grupo principal, además de sudo y developers. El UID 1001 no es root, aunque el grupo sudo pueda autorizar determinados comandos con privilegios elevados.
- 4Desafío¿Un nombre con poder o un UID con poder?
Una cuenta llamada
maintainertiene el UID 0. Otra llamadaroot-helpertiene el UID 1030. ¿Qué identidad tiene los privilegios de root sin usar sudo y por qué?---reveal---
Maintainer tiene los privilegios de root porque su UID es 0. El nombre root-helper no convierte el UID 1030 en la identidad de superusuario. Inspecciona el número, no un nombre sugerente ni un indicador de comandos personalizado.
- 5ConexiónLa identidad y el historial de inicios de sesión responden a preguntas distintas
whoamiidentifica al usuario actual;idañade identificadores y grupos.wholista las sesiones actuales ywañade actividad, tiempo de funcionamiento y carga.lastinforma de inicios de sesión y reinicios anteriores registrados. En sistemas que usan wtmpdb, como Debian 13, utilizawtmpdb lastpara consultar ese historial. Una entrada del historial no es la lista de grupos de tu intérprete actual. - 6ExplicaciónComparte mediante un grupo adicional
El grupo principal de Alice es su grupo privado, también llamado alice. Developers es un grupo suplementario adicional. Un proceso puede utilizar tanto la pertenencia principal como las suplementarias para acceder mediante grupos. Por tanto, asignar un informe a developers puede compartirlo con Alice y Bob, mientras que asignarlo al grupo privado de Alice normalmente no lo comparte con sus compañeros de trabajo.
- 7EjemploAsigna un informe a developers
El informe pertenece a
bob:developersy tiene el modorw-r-----. Alice no es su propietaria, pero su pertenencia a developers selecciona elr--del grupo: puede leer, pero no editar. Chen no pertenece a developers y recibe el---de otros. Establecer el grupo propietario identifica al equipo; la terna central determina las acciones permitidas al equipo. - 8DesafíoUna lista vacía con un miembro real
Un registro de cuenta asigna a Robin el GID principal 1440. La consulta del grupo devuelve
review:x:1440:. ¿Pertenece Robin a review a pesar de que el último campo está vacío?---reveal---
Sí. El GID principal de Robin coincide con review. El último campo del grupo lista los miembros suplementarios, por lo que no tiene por qué incluir a los miembros principales. Una consulta completa del usuario con
id robincomprueba ambos tipos de pertenencia. - 9EjemploDivide la línea pública de la cuenta
Lee
alice:x:1001:1001:Alice Moreau:/home/alice:/bin/bashcomo siete campos separados por dos puntos. Alice es el nombre, x apunta a los datos protegidos de contraseña, 1001 es el UID y el siguiente 1001 es el GID principal. Los campos restantes indican un comentario, un directorio personal y un intérprete de inicio de sesión. El registro público de passwd no contiene la contraseña legible de Alice. - 10ExplicaciónUn resumen se comprueba, no se descifra
El archivo shadow almacena resúmenes criptográficos de contraseñas y campos de vigencia con acceso restringido. Al iniciar sesión, se calcula el resumen de la contraseña con el método y la sal almacenados y después se compara con el resultado guardado. Las sales diferentes permiten que contraseñas iguales tengan resúmenes distintos. Un
!inicial bloquea la autenticación por contraseña, pero no elimina todos los demás métodos de inicio de sesión. - 11EjemploLee los campos de vigencia
En
alice:$y$j9T$...:20514:0:90:7:::, el día 20514 es el 2 de marzo de 2026. La vigencia mínima de 0 permite otro cambio inmediatamente. La vigencia máxima de 90 sitúa la caducidad el 31 de mayo y el aviso de 7 comienza el 24 de mayo. Los campos vacíos de inactividad y caducidad de la cuenta no establecen ninguno de esos límites. Todos los valores de fecha utilizan días desde el 1 de enero de 1970, UTC. - 12DesafíoDistingue el fallo de contraseña de la identidad
Una consulta muestra una cuenta con UID 1090, grupo principal 1090 y un resumen de shadow precedido por
!. Un compañero dice: «La cuenta ya no existe, así que su grupo ya no importa». ¿Qué es incorrecto?---reveal---
La cuenta sigue existiendo con su UID y su grupo. El prefijo bloquea su contraseña; no elimina su identidad. Sus archivos y pertenencias a grupos siguen teniendo significado y puede seguir disponible un método de inicio de sesión sin contraseña.
- 13RepasoElige la información adecuada
Usa la identidad del proceso activo para entender quién actúa. La pertenencia a grupos relaciona esa identidad con permisos compartidos. Los registros passwd y group describen las relaciones públicas de las cuentas; shadow contiene los datos protegidos de contraseñas y vigencia. Consulta con
getenty usa comandos de gestión de cuentas cuando haya que cambiar los registros.
2Eleva una acción y lee su política
13 pasos
Guarda esta unidad para seguir cada Lección Interactiva paso a paso.
- 1IntroducciónMantén a la vista la acción de administración
- 2ExplicaciónCambia de intérprete o ejecuta un comando
- 3ConsejoComprueba los permisos y la autenticación temporal
- 4Desafío¿De quién es la contraseña para otro usuario de destino?
- 5EjemploSigue el intento fallido de añadir contenido
- 6EjemploDa privilegios elevados al programa que escribe
- 7DesafíoConserva el contenido anterior
- 8ExplicaciónLee una autorización completa
- 9ConsejoEdita una regla con protección de sintaxis
- 10DesafíoPermitir reiniciar no implica permitir detener
- 11Idea claveUn guion puede ampliar una regla limitada
- 12DesafíoComprueba tanto la política como el proceso
- 13RepasoLimita el alcance a lo que requiere la tarea
3Crea una cuenta y haz funcionar el acceso del equipo
15 pasos
Guarda esta unidad para seguir cada Lección Interactiva paso a paso.
- 1IntroducciónConfigura una identidad de trabajo utilizable
- 2EjemploCrea la cuenta de forma explícita
- 3ExplicaciónCompleta la configuración de contraseña y directorio personal
- 4ConsejoComprueba el resultado en tres lugares
- 5DesafíoUna ruta de directorio personal sin directorio
- 6ExplicaciónElige un cambio de contraseña o de cuenta
- 7EjemploEstablece la vigencia sin confundir las fechas
- 8DesafíoConserva las pertenencias existentes a equipos
- 9ExplicaciónAñade y elimina miembros de grupos
- 10EjemploCompara la base de datos y la sesión
- 11DesafíoCorrige la sesión antes que los archivos
- 12ConexiónProporciona al equipo un lugar de creación compartido
- 13Idea claveLa eliminación deja la propiedad numérica
- 14DesafíoUna salida tiene varios efectos independientes
- 15RepasoVerifica los registros y la sesión de trabajo
4Lee un modo y predice una operación
17 pasos
Guarda esta unidad para seguir cada Lección Interactiva paso a paso.
- 1IntroducciónPregunta qué intenta hacer el usuario
- 2EjemploDivide el listado en campos
- 3ExplicaciónSelecciona la primera terna que coincida
- 4DesafíoEl grupo no prevalece sobre el propietario
- 5ExplicaciónUsa el significado de x para cada objeto
- 6EjemploRecorre una ruta bloqueada
- 7DesafíoUn archivo de solo lectura en una carpeta con permiso de escritura
- 8Idea claveUn intérprete lee un guion
- 9ExplicaciónAñade, elimina o establece una clase
- 10EjemploConvierte 750 clase por clase
- 11ConsejoMantén el permiso de búsqueda en los directorios de un árbol
- 12DesafíoAñade un permiso sin sustituir los demás
- 13ExplicaciónAsigna las identidades correctas
- 14EjemploCorrige el propietario de una carpeta de trabajo
- 15Desafío¿Mover o crear una copia nueva?
- 16DesafíoElige entre corregir el modo o el propietario
- 17RepasoRelaciona la identidad, el objeto y la acción
5Controla los modos nuevos e investiga una solicitud denegada
19 pasos
Guarda esta unidad para seguir cada Lección Interactiva paso a paso.
- 1IntroducciónExplica el modo antes de cambiarlo
- 2ExplicaciónEmpieza por lo que solicita el programa
- 3EjemploAplica la máscara 027 a un archivo
- 4EjemploComprueba el atajo de la resta
- 5DesafíoPredice dos resultados de creación
- 6ConsejoDistingue los valores predeterminados futuros de los archivos existentes
- 7ExplicaciónReconoce los bits especiales en la salida
- 8EjemploUn programa obtiene privilegios adicionales controlados
- 9EjemploSigue un archivo nuevo hasta la carpeta de equipo
- 10ExplicaciónProtege los nombres en un directorio compartido con permiso de escritura
- 11DesafíoEdita sin permiso para eliminar
- 12ConsejoDesactiva explícitamente un bit especial
- 13ExplicaciónHaz cuatro preguntas de diagnóstico
- 14EjemploComprueba primero la ruta de Kenji
- 15EjemploLocaliza el permiso que falta
- 16DesafíoDetente en el directorio padre bloqueado
- 17ConexiónComprueba la causa de los resultados inesperados
- 18DesafíoUn valor predeterminado nuevo y un archivo existente necesitan correcciones distintas
- 19RepasoDistingue cada mecanismo de permisos
Ejercicios de Usuarios, grupos y permisos en Linux
Set 1: Gestiona cuentas y archivos compartidos10 Preguntas de Práctica
Pregunta 1 de 10
Mostrar respuestaOcultar respuesta
Pregunta 2 de 10
sudo -u postgres psql?Mostrar respuestaOcultar respuesta
-u cambia el usuario de destino del comando, no la persona cuya contraseña se comprueba. Pedir la contraseña de postgres describe, en cambio, el comportamiento habitual de su.Pregunta 3 de 10
sudo y editors. Un administrador ejecuta usermod -G reviewers mei. ¿Cuál es su lista de grupos suplementarios en una sesión nueva?Mostrar respuestaOcultar respuesta
-a, usermod trata la lista proporcionada con -G como la lista suplementaria completa. Por tanto, Mei pierde las dos pertenencias suplementarias anteriores. Para conservar los grupos anteriores se necesitaría el modo de añadir, -aG; el comando no da protección especial a la pertenencia a sudo.Pregunta 4 de 10
/data/zoe, que debe crearse ahora, y Bash como intérprete. ¿Qué comando solicita las tres cosas?Mostrar respuestaOcultar respuesta
-d selecciona la ruta del directorio personal, -m lo crea y -s establece el intérprete de inicio de sesión. Un comando con solo -d registra una ruta, pero no solicita explícitamente la creación del directorio. La opción de comentario -c no puede sustituir ni a la opción de ruta del directorio personal ni a la del intérprete.Pregunta 5 de 10
audit a records sin cambiar su GID. ¿Qué ocurre con los archivos asignados a ese GID?Mostrar respuestaOcultar respuesta
records después del cambio de nombre. La pérdida del grupo propietario es un problema cuando cambia el GID numérico sin actualizar los archivos, no cuando solo cambia la etiqueta.Pregunta 6 de 10
brief.txt y pertenece a writers, pero no a sales. ¿Qué cambio de grupo puede hacer sin sudo?Mostrar respuestaOcultar respuesta
Pregunta 7 de 10
rwxr-----?Mostrar respuestaOcultar respuesta
Pregunta 8 de 10
/srv/art es root:artists con modo 2770. Inez pertenece a artists, tiene el grupo principal inez y la umask 027. Crea un archivo solicitando 666. ¿Qué grupo y modo ordinario resultan?Mostrar respuestaOcultar respuesta
Pregunta 9 de 10
%ops ALL=(root) /usr/bin/systemctl reload nginx. ¿Qué acción autoriza?Mostrar respuestaOcultar respuesta
Pregunta 10 de 10
lab. /srv tiene 755, /srv/lab es root:lab con modo 740 y su archivo es ana:lab con modo 640. Todos los directorios padre anteriores tienen permiso de búsqueda. ¿Qué cambio de clase mínimo permite a Niko leer el archivo?Mostrar respuestaOcultar respuesta
/srv/lab es r--, por lo que no puede buscar en ese directorio. Añadir ejecución de grupo proporciona el permiso que falta en la ruta. Añadir lectura del archivo para otros no ayudaría porque el directorio seguiría bloqueando la ruta y Niko utiliza la clase de grupo.Set 2: Predice modos y acceso a directorios10 Preguntas de Práctica
Guarda esta unidad para ver todas las respuestas y practicar cada set.
Pregunta 1 de 10
check.sh y conserva los demás bits?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 2 de 10
/srv/box. Conoce el nombre exacto de un archivo y ese archivo le da lectura. ¿Qué puede hacer?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 3 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 4 de 10
umask 077?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 5 de 10
drwxr-S--- sobre los bits SGID y de ejecución del grupo?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 6 de 10
ben:ben se mueve a una carpeta de equipo con SGID en el mismo sistema de archivos. ¿Qué propiedad conserva?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 7 de 10
/srv/drop es root:shared con modo 3770. Dev y Eva son miembros activos de shared. Eva crea un archivo solicitando 666 con la umask 002. ¿Puede Dev editar y eliminar su archivo según los permisos ordinarios?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 8 de 10
chmod -R u=rwX,g=rX,o= tree/?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 9 de 10
root:review con modo 705. Sam pertenece a review y no es root. ¿Qué permisos de directorio recibe Sam de las clases ordinarias?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 10 de 10
x.txt, pero no puede renombrarlo dentro de un directorio root:team con modo 1750; Oli pertenece a team y es propietario de x.txt. ¿Qué cambio mínimo de permisos permite cambiarle el nombre y conservar el bit de permanencia?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Set 3: Identifica cuentas y controla el acceso10 Preguntas de Práctica
Guarda esta unidad para ver todas las respuestas y practicar cada set.
Pregunta 1 de 10
rescue tiene el UID 0. ¿Qué privilegios de administración tiene esa identidad?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 2 de 10
design:x:1420:. ¿Significa el último campo vacío que la cuenta no pertenece a design?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 3 de 10
nora:x:1042:1042:Nora:/home/nora:/bin/bash, ¿qué significa x?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 4 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 5 de 10
sudo echo "ready" >> /etc/team-status cuando solo root puede escribir en el archivo?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 6 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 7 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 8 de 10
id lena incluye media, pero id sin argumentos en el intérprete anterior de Lena no lo incluye. ¿Qué debe hacer Lena antes de volver a intentar el acceso mediante el grupo?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 9 de 10
004 y pertenece a su grupo propietario. ¿Qué clase de permisos ordinarios controla su intento de lectura?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 10 de 10
docs. /srv es root:root con modo 755, /srv/notes es root:docs con modo 750 y el archivo a.txt que contiene es maya:docs con modo 440. ¿Puede Tariq leerlo y eliminarlo mediante los permisos ordinarios?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Set 4: Elige cambios de administración seguros10 Preguntas de Práctica
Guarda esta unidad para ver todas las respuestas y practicar cada set.
Pregunta 1 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 2 de 10
/etc/sudoers.d/, pero la regla válida de release.conf no se aplica. ¿Qué cambio de nombre permite leer ese archivo de reglas?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 3 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 4 de 10
draft.txt a authors?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 5 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 6 de 10
pat con UID 1088 y /data/archive queda con 1088 como propietario. Una cuenta nueva recibe el UID 1088. ¿Qué explica su acceso a ese archivo como propietario?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 7 de 10
memo en /srv/review. El directorio es root:review con 2750 y memo es jo:review con 640; Rae pertenece a review. Rae solo necesita modificar el contenido en el propio archivo. ¿Qué corrección mínima cubre esa necesidad?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 8 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 9 de 10
chmod 750 team/ y después crea un subdirectorio dentro de él. ¿Qué comportamiento de los bits especiales debe esperar?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 10 de 10
research sigue siendo el grupo principal de Kim. ¿Por qué se niega a actuar el comando ordinario groupdel research, incluso después de eliminar a Kim de su lista de miembros suplementarios?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Set 5: Investiga el acceso de usuarios y rutas10 Preguntas de Práctica
Guarda esta unidad para ver todas las respuestas y practicar cada set.
Pregunta 1 de 10
/srv tiene 755; /srv/qa es root:qa con modo 2710 y result dentro de él es lee:qa con modo 640. Todos los directorios padre anteriores tienen permiso de búsqueda. ¿Puede Uma listar nombres, leer el archivo conocido y crear un archivo nuevo?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 2 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 3 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 4 de 10
/var/log/team-run. ¿Qué comando eleva los privilegios del proceso que escribe y conserva el contenido anterior?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 5 de 10
cp sin opciones. ¿Quién es propietario del nuevo archivo de destino?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 6 de 10
edit. /srv/edit es root:edit con 2770. Noor puede crear archivos allí, pero un archivo existente kai:edit tiene 640 y ella no puede añadirle contenido. Quienes crean archivos usan programas que solicitan el modo 666. ¿Qué cambio en la creación futura de archivos ordinarios permite a los compañeros añadir contenido sin abrir los archivos a otros?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 7 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 8 de 10
drwxrwx---, el propietario teo y el grupo build. Teo también pertenece a build. ¿Qué clase se utiliza para el acceso ordinario de Teo?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 9 de 10
mira:team con modo 1770. Ren pertenece a team; Sol es propietario de una entrada en él. ¿Quién de entre Mira y Ren puede eliminar la entrada de Sol según los bits ordinarios y la regla del bit de permanencia?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 10 de 10
NOPASSWD: /usr/bin/systemctl restart nginx a ops y después una regla coincidente posterior utiliza PASSWD: para ese mismo comando. Sin una marca de tiempo válida, ¿qué ocurre al realizar esa acción permitida?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
¿Te atascas con una pregunta tuya? Ayuda con Tareas
Términos Clave
A
adduser
adduser solicita los datos de la cuenta y crea el directorio personal del nuevo usuario durante la configuración.archivo group
/etc/group almacena nombres de grupos, marcadores de contraseñas, GID y listas de nombres de miembros suplementarios.archivo huérfano
archivo passwd
/etc/passwd, que almacena nombres, identificadores, rutas de directorios personales, comentarios e intérpretes de inicio de sesión./home.archivo shadow
/etc/shadow que almacena los resúmenes de contraseñas locales y los campos de vigencia de las cuentas.B
bit de permanencia
/tmp permite a los usuarios crear archivos temporales sin permitirles eliminar las entradas de los demás.bloqueo de contraseña
! a su resumen criptográfico.C
caducidad de la contraseña
passwd -e hace caducar la contraseña para que un usuario deba sustituir una contraseña temporal que se le ha asignado.caducidad de la cuenta
cambio recursivo
-R del comando.campo GECOS
priya.chage
chage -l lea para consultar las fechas antes de cambiar los ajustes de vigencia de la cuenta.chgrp
chgrp editors draft.txt en su propio archivo después de unirse al grupo editors.chmod
chmod g+w draft.txt para permitir que el grupo propietario de su archivo modifique el contenido del documento.chown
chown lea:editors draft.txt para asignar tanto el propietario como el grupo del archivo.clase de otros
--- en un informe con modo 640.clase del grupo
clase del propietario
cuenta de usuario
cuenta del sistema
www-data permite ejecutar un servicio web sin usar la cuenta normal de una persona.D
desactivación de bits
dígito de permisos especiales
directorio de plantillas
/etc/skel..bash_aliases al directorio de plantillas para las cuentas que se creen después.directorio personal
/home./data/lea todavía debe crearse si no existe.E
entrada de directorio
entrada Defaults
timestamp_timeout=10 establece un intervalo de autenticación de diez minutos.especificación de identidad de ejecución
(root) restringe una acción de mantenimiento para que se ejecute con la identidad de root.etiqueta NOPASSWD
G
gpasswd
gpasswd -a lea editors añade a Lea sin sustituir a los demás miembros suplementarios del grupo editors.groupadd
groupadd, el administrador confirma el nuevo grupo de equipo con getent group.groupmod
groupmod conserva el GID, por lo que los archivos siguen asociándose al grupo renombrado.grupo
editors hace que su terna de permisos de grupo sea útil para ese equipo.grupo principal
mina, por lo que un archivo nuevo normalmente comienza con ese grupo fuera de una carpeta con SGID.grupo privado de usuario
grupo suplementario
design permite a Mina usar los permisos de design en archivos compartidos.grupos activos
id sin argumentos muestra los grupos activos del intérprete anterior de Lea antes de que inicie una sesión nueva.H
herencia de grupo
I
identificador de grupo
identificador de usuario
uid=1051(ava) identifica a Ava aunque después cambie el nombre de su cuenta.identificador de usuario efectivo
indicador de lista de control de acceso
-rw-r-----+ tiene un indicador de ACL después de las nueve posiciones de permisos ordinarios.intérprete
task.sh mediante bash task.sh aunque el guion no tenga bit de ejecución.intérprete de acceso denegado
intérprete de comandos de inicio de sesión
sudo -i inicia un intérprete de inicio de sesión de root, por lo que los comandos posteriores de ese intérprete se ejecutan con la identidad de root.M
marca de tiempo de autenticación
sudo -k.máscara de creación de archivos
máscara heredada
modo de permisos solicitado al crear
modo octal
rwx, el grupo recibe r-x y otros no reciben permisos.modo simbólico
g+w para añadir escritura al grupo.go-w elimina la escritura del grupo y de otros y conserva sus permisos restantes.movimiento dentro del mismo sistema de archivos
N
namei
-l muestra información de propiedad y permisos de los componentes de una ruta de archivo.namei -l para encontrar un directorio padre que bloquea el acceso a un archivo legible.newgrp
newgrp editors después de una actualización de pertenencia y comprueba la identidad del nuevo intérprete con id.O
opciones de montaje
P
periodo de inactividad tras la caducidad de la contraseña
permiso de búsqueda
permiso de ejecución
permiso de ejecución condicional
X mayúscula de chmod, que selecciona ejecución para directorios y archivos que ya tienen un bit de ejecución.permiso de escritura
permiso de lectura
política de sudoers
principio de mínimo privilegio
proceso
propiedad mediante identificadores numéricos
R
redirección
>>.sudo echo porque el intérprete ordinario abre el archivo protegido.resumen criptográfico de la contraseña
S
sal criptográfica
SGID
su
su - bob para iniciar el entorno de inicio de sesión de Bob y después escribe exit para volver a su intérprete.sudo
sudo para reiniciar un servicio y después edita los archivos de su propio proyecto sin privilegios elevados.SUID
superusuario
T
terna de permisos
r--, por lo que sus miembros pueden leer el archivo, pero no editarlo.trazabilidad de las acciones
U
useradd
useradd con -m y -s para crear un directorio personal y seleccionar un intérprete de inicio de sesión.usermod
-a a usermod -G conserva las pertenencias suplementarias anteriores al añadir una nueva.V
visudo
visudo sobre un archivo de política de equipo para detectar un error de escritura antes de guardarlo.- 1Linux y el código abierto
- 2Línea de comandos de Linux
- 3Tuberías y redirección en Linux
- 4Guiones de Bash
- 5Usuarios, grupos y permisos en Linux
- 6Procesos, paquetes y servicios en Linux
- 7Almacenamiento y redes en Linux
Sobre esta unidad
Crea tus propios Materiales de Estudio
Convierte tus notas, diapositivas y documentos en Guías de Estudio, Preguntas de Práctica, Flashcards y 6 herramientas más.