Bienvenidos al Capítulo 6 de nuestro Curso Gratuito de Linux, donde exploraremos un elemento fundamental: los permisos de archivos en el sistema operativo Linux. Comprender cómo funcionan los permisos es esencial para garantizar la seguridad y la integridad de tu sistema. En este capítulo, desglosaremos los conceptos clave y te proporcionaremos las herramientas para administrar adecuadamente los permisos de archivos en entornos Linux.
¿Te gustaría enterarte de cuando lanzamos descuentos al Máximo o Nuevos Cursos?
Los permisos de archivos, es decir, controlar el acceso a archivos y directorios (carpetas), son indispensables. Si has escrito scripts Bash personalizados, es probable que hayas perdido la cuenta de cuántas veces invocas el comando chmod +x myscript.sh
. Al realizar tareas administrativas del sistema, debes estar familiarizado con los comandos su
o sudo
.
De vez en cuando, es posible que necesites un repaso sobre los permisos de archivos. En el trabajo, es posible que tengas que proteger datos clasificados de miradas indiscretas en los servidores de la empresa, a menudo alojados en Linux. Además, imagina las pérdidas en las que incurrirás si no evitas cambios accidentales en archivos críticos o comportamientos maliciosos.
Esta hoja de referencia sobre permisos de archivos de Linux es el repaso que necesitas. Cubre los tipos de permisos de archivos, las categorías de usuarios a las que se aplican, chmod, su/sudo
y los comandos de Linux relacionados.
Los siguientes comandos muestran permisos de archivos/directorios:
DOMINIO | DESCRIPCIÓN |
---|---|
ls -l foo.sh | Verificar permisos del archivofoo.sh |
ls -ld bar | Verificar permisos del directoriobar |
Permisos, alcance y detalles del archivo al ejecutar ls -l o ls -ld
Los permisos sobre archivos y directorios abarcan cuatro ámbitos:
ALCANCE | SÍMBOLO | DESCRIPCIÓN |
---|---|---|
Usuario | u | El propietario del archivo o directorio |
Grupo | g | El grupo de usuarios que pueden acceder al archivo o directorio. |
Otro | o | Otros usuarios (mundo) |
Todo | a | Todos los usuarios |
Permisos de archivos
TIPO DE PERMISO | SÍMBOLO | SI UN ARCHIVO TIENE ESTE PERMISO, PUEDE: | SI UN DIRECTORIO TIENE ESTE PERMISO, PUEDE: |
---|---|---|---|
Leer | r | Abrir y ver el contenido del archivo (cat, head, tail ) | Leer el contenido del directorio (ls, du ) |
Escribir | w | Editar, eliminar o cambiar el nombre del archivo (vi ) | Editar, eliminar o cambiar el nombre del directorio y los archivos que contiene; crear archivos dentro de él (touch ) |
Ejecutar | x | Ejecutar el archivo | Ingrese el directorio (cd ); sin x , los permisos r y w del directorio son inútiles |
Ninguno | - | Hacer nada | Hacer nada |
Comandos relacionados con permisos
DOMINIO | DESCRIPCIÓN |
---|---|
chmod permission foo | Cambiar los permisos de un archivo o directorio foo según permission en formato de notación simbólica u octal. Ejemplos: |
chmod +x foo | Otorga permisos de ejecución a todos los usuarios para foo usar notación simbólica. |
chmod 777 foo | Otorga permisos de lectura, escritura y ejecución a todos los usuarios para foo usar notación octal. |
chown user2 foo | Cambiar el propietario de foo a user2 . |
chgrp group2 foo | Cambiar el grupo al que foo pertenece group2 . |
umask | Obtén un subtrahend de cuatro dígitos.Recuerda en la resta: minuend – subtrahend = difference Si minuend es 777, difference son sus permisos de directorio predeterminados; si es 666, difference son sus permisos de archivo predeterminados. |
su / sudo / sudo -i | Invocar privilegios de superusuario. |
id | Encuentre su identificación de usuario y su identificación de grupo. |
groups | Encuentra todos los grupos a los que perteneces. |
Si ejecuta un comando más allá de los permisos otorgados, obtendrás errores como “Permiso denegado” u “Operación no permitida”.
Cambiar permisos
Hay dos métodos para representar permisos en la línea de comando. El primer argumento del comando chmod admite ambas representaciones.
MÉTODO | FORMATO DE PERMISO | EJEMPLOS | APLICACIÓN SIN CHMOD |
---|---|---|---|
Notación simbólica | Una cadena de texto corta que consta de un carácter de [u/g/o/a] , uno de los símbolos de asignación [+/-/=] y al menos uno de [r/w/x] . Si omite u/g/o/a , el valor predeterminado es a. | u+rg-wxo=rx+x (i.e., a+x) | ls -l Salidas de comando y ls -ld , p.-rwxrw-r--x Aquí, - denota la ausencia, no la eliminación, de un permiso. |
Notación octal | número octal de tres dígitos que va del 000 al 777 | 774 | Computación permisos predeterminados con umask |
Notación simbólica
Esta notación se utiliza en las salidas de los comandos ls -l
y ls -ld
, y utiliza una combinación de u/g/o/a
(que denota el alcance), +/-/=
y r/w/x
para cambiar los permisos. Si omite u/g/o/a
, el valor predeterminado es a
.
La notación +/-/=
se refiere a otorgar/eliminar/establecer varios permisos.
A continuación, se muestran algunos ejemplos de chmod
uso con notación simbólica. Puedes cambiar más de un permiso a la vez, uniendo notaciones simbólicas con una coma (,) como se muestra en el cuarto ejemplo a continuación.
COMANDO EN NOTACIÓN SIMBÓLICA | CAMBIO EN LOS PERMISOS DEL USUARIO (U) | CAMBIO EN LOS PERMISOS DEL GRUPO (G) | CAMBIO EN LOS PERMISOS DEL MUNDO (O) |
---|---|---|---|
chmod +x foo | ✓ Ejecutar | ✓ Ejecutar | ✓ Ejecutar |
chmod a=x foo | ☐ Leer ☐ Escribir ✓ Ejecutar | ☐ Leer ☐ Escribir ✓ Ejecutar | ☐ Leer ☐ Escribir ✓ Ejecutar |
chmod u-w foo | ☐ Escribir | (Ningún cambio) | (Ningún cambio) |
chmod u+wx,g-x,o=rx foo | ✓ Escribir ✓ Ejecutar | ☐ Ejecutar | ✓ Leer ☐ Escribir ✓ Ejecutar |
Notación octal
Esta notación es un número de tres dígitos, en el que cada dígito representa permisos como la suma de cuatro sumandos 4, 2 y 1 correspondientes a leer (r
), escribir ( w
) y ejecutar (x
) permisos respectivamente.
- El primer dígito se aplica al usuario (propietario) (
u
). - El segundo dígito se aplica al grupo (
g
). - El tercer dígito se aplica al mundo (otros usuarios) (
o
).
DÍGITO OCTAL | PERMISO(S) CONCEDIDO(S) | SIMBÓLICO |
---|---|---|
0 | Ninguno | [u/g/o]-rwx |
1 | Sólo permiso de ejecución | [u/g/o]=x |
2 | Sólo permiso de escritura | [u/g/o]=w |
3 | Permisos de escritura y ejecución únicamente: 2 + 1 = 3 | [u/g/o]=wx |
4 | Sólo permiso de lectura | [u/g/o]=r |
5 | Permisos de lectura y ejecución únicamente: 4 + 1 = 5 | [u/g/o]=rx |
6 | Permisos de lectura y escritura únicamente: 4 + 2 = 6 | [u/g/o]=rw |
7 | Todos los permisos: 4 + 2 + 1 = 7 | [u/g/o]=rwx |
A continuación, se muestran algunos ejemplos de chmod
uso con notación octal:
COMANDO EN NOTACIÓN OCTAL | CAMBIO EN LOS PERMISOS DEL USUARIO (U) | CAMBIO EN LOS PERMISOS DEL GRUPO (G) | CAMBIO EN LOS PERMISOS DEL MUNDO (O) |
---|---|---|---|
chmod 777 foo | ✓ Leer ✓ Escribir ✓ Ejecutar | ✓ Leer ✓ Escribir ✓ Ejecutar | ✓ Leer ✓ Escribir ✓ Ejecutar |
chmod 501 foo | ✓ Leer ☐ Escribir ✓ Ejecutar | ☐ Leer ☐ Escribir ☐ Ejecutar | ☐ Leer ☐ Escribir ✓ Ejecutar |
chmod 365 foo | ☐ Leer ✓ Escribir ✓ Ejecutar | ✓ Leer ✓ Escribir ☐ Ejecutar | ✓ Leer ☐ Escribir ✓ Ejecutar |
chmod 177 foo | ☐ Leer ☐ Escribir ✓ Ejecutar | ✓ Leer ✓ Escribir ✓ Ejecutar | ✓ Leer ✓ Escribir ✓ Ejecutar |
Conversión entre notaciones simbólicas y octales
Para visualizar la notación octal, permita que ↔ asigne notación simbólica a números binarios (0 = permiso denegado, 1 = permiso concedido) y deja que ⇔ convierta entre el sistema numérico binario y octal. Tienes:
r
↔ 1002 ⇔ 48,w
↔ 0102 ⇔ 28, y< /span>x
↔ 0012 ⇔ 18.
Por lo tanto, cada combinación de r
, w
y x
corresponde a la suma única de sus representaciones numéricas, como permisos completos rwx
↔ 111 111 1112 ⇔ 7778, de la siguiente manera:
NOTACIÓN SIMBÓLICA (LS -L) | REPRESENTACIÓN BINARIA | NOTACIÓN OCTAL |
---|---|---|
rwxr-xr-x | 111 101 101 | 755 |
rw-r--r-- | 110 100 100 | 644 |
rwx------ | 111 000 000 | 700 |
r-xr-xr-x | 101 101 101 | 555 |
Permisos predeterminados
Además de ser una alternativa a la notación simbólica, la notación octal tiene un caso de uso especial con el umask
comando.
Para verificar qué permisos tiene como usuario actual, usa el comando umask
para obtener un número de cuatro dígitos que, si se resta de 0777, le otorga los permisos predeterminados para crear un directorio. y, si se resta de 0666, otorga permisos predeterminados para crear un archivo.
Uso:
DOMINIO | DESCRIPCIÓN |
---|---|
umask | Encuentre sus permisos predeterminados de usuario y grupo cuando cree un nuevo archivo o directorio |
Ejemplos:
SALIDA DE MÁSCARA DE USUARIO | PERMISOS DE DIRECTORIO PREDETERMINADOS | PERMISOS DE ARCHIVOS PREDETERMINADOS |
---|---|---|
0002 | Octal: 777 – 2 = 775 Simbólico: rwxrwxr-x | Octal: 666 – 2 = 664 Simbólico: rw-rw-r-- |
0022 | Octal: 777 – 22 = 755 Simbólico: rwxr-xr-x | Octal: 666 – 22 = 644 Simbólico: rw-r--r-- |
0314 | Octal: 777 – 314 = 463 Simbólico: r--rw–wx | Octal: 666 – 314 = 352 Simbólico: -wxr-x-w- |
Cambio de propiedad
Antes de cambiar la propiedad de cualquier archivo o directorio, necesitas saber cómo tu computadora identifica usuarios y grupos. Dos comandos útiles son id
y groups
.
Uso:
DOMINIO | DESCRIPCIÓN |
---|---|
id | Encuentre su ID de usuario (uid ) y su ID de grupo (gid ) |
groups | Encuentre el grupo al que pertenece su usuario |
Ejemplo:
ID SALIDAT | DESCRIPCIÓN |
---|---|
uid=501(teacher) gid=20(staff) groups=20(staff),12(everyone),61(localaccounts) | Su ID de usuario (uid ) es 501.Su ID de grupo ( gid ) es 20..y ,Tu usuario pertenece a tres grupos: staff everyone localaccounts |
GROUPS PRODUCCIÓN | DESCRIPCIÓN |
staff everyone localaccounts | Tu usuario pertenece a tres grupos: staff, everyone y localaccounts . |
Superusuario
La mayoría de las distribuciones de Linux contienen un programa que te permite acceder a la terminal como superusuario (o usuario root). Este programa ayuda a los usuarios experimentados a realizar tareas de administración del sistema.
Las dos formas de invocar este programa son los comandos su
(abreviatura de usuario sustituto) para abrir un shell raíz dedicado y sudo
ejecutar comandos. En ambos casos, deberá ingresar la contraseña de superusuario para continuar con la tarea que desea realizar.
Las distribuciones modernas no establecen la contraseña de superusuario, por lo que en esa situación, usa el comando sudo -i
para ingresar al shell raíz.
El símbolo del shell cambia de $ a # en el shell raíz. Es un recordatorio de que un gran poder conlleva una gran responsabilidad. Para salir del shell raíz, utiliza el exit
comando.
COMANDO (INCLUYE SÍMBOLO DE SHELL) | SÍMBOLO) DESCRIPCIÓN DEL COMANDO | MENSAJE DE SALIDA Y SÍMBOLO DE SHELL (NUEVO) |
---|---|---|
$ su | Invocar shell de superusuario | Password: # |
$ sudo some_command | Invocar privilegios de superusuario al ejecutarsome_command | Password: $ |
$ sudo -i | Invocar shell de superusuario si su está deshabilitado | Password: # |
Utilizá estos comandos de superusuario con cuidado.
Cambiar la propiedad del archivo
Si tiene privilegios de superusuario, puede cambiar el propietario (usuario) de un archivo o directorio utilizando el comando chown
. Si conoces el uid
del nuevo propietario, también puede reemplazar user2
a continuación con el uid
correspondiente.
DOMINIO | DESCRIPCIÓN |
---|---|
sudo chown user2 foo | Transferir la propiedad del usuario de foo a user2 |
sudo chown 102 foo | Transferir la propiedad del usuario de foo al usuario con uid=102 |
Cambiar la propiedad del grupo
Si sos el propietario de un archivo o directorio, podes cambiar la propiedad del grupo de un archivo o directorio usando el chgrp
comando.
DOMINIO | DESCRIPCIÓN |
---|---|
chgrp group2 foo | Transferir la propiedad del archivo/directorio foo al grupo group2 |
chgrp 2 foo | Transferir la propiedad del archivo/directorio foo al grupo con gid=2 |
sudo chown user2:group2 foo | (Se requieren privilegios de superusuario) Cambie la propiedad del usuario y del grupo simultáneamente a user2 y group2 respectivamente |
Preguntas frecuentes
¿Cómo enumero los permisos de archivos en Linux?
Utilizá el comando ls -l para archivos en general y ls -ld para comprobar los de directorios específicamente.
¿Cómo verifico los permisos de usuario en Linux?
Utilizá el comando umask para obtener un número, que restará de 777 para obtener permisos de directorio y de 666 para obtener permisos de archivos.
¿Cuál es el significado de chmod 777?
Otorga todos los permisos a todos los usuarios.
¿Qué significa chmod 774?
Otorga todos los permisos al propietario y grupo de un archivo/directorio (4 + 2 + 1 = 7) y permiso de lectura (4) a otros usuarios.
¿Qué significa chmod 640?
Otorga permisos de lectura (4) y escritura (2) al propietario (4 + 2 = 6), permiso de lectura (4) al grupo y ninguno (0) a otros usuarios.
En este capítulo, hemos profundizado en el mundo de los permisos de archivos en Linux, una habilidad esencial para cualquier administrador de sistemas. Desde comprender la estructura de permisos hasta la aplicación práctica de comandos, ahora estás mejor equipado para controlar y proteger tu sistema. Continúa practicando y explorando para fortalecer tu dominio sobre este aspecto crucial de la administración de Linux. Si estás buscando convertirte en un usuario avanzado de Linux, consulta:
Aprende Linux desde 0 y prepara la Certificación LPIC-1.
Este curso empieza desde los inicios, enseñándote lo mas básico, acompañándote en cada paso y duda que tengas hasta llegar a los conocimientos necesarios para si gustas, puedas trabajar con Linux y rendir la certificación LPIC-1.
Me caracterizo por tener Mucha Practica en mis cursos, y este no es la excepción. Es más, te brindo Modelos de Exámenes de la certificación para que puedas practicar y ver lo que te espera al momento de rendir.
Yo soy Álvaro Chirou, tengo más de 20 Años de experiencia trabajando en Tecnología, eh dado disertaciones en eventos internacionales como OWASP, tengo más de 500.000 estudiantes en Udemy y 100 formaciones profesionales impartidas en la misma.
Empieza a aprender ya mismo y acompáñame en este increíble curso.
Lo que aprenderás:
- Automatizar Procesos en Linux con Bash
- Comandos de Linux desde lo básico hasta avanzado.
- Realizar Conexiones seguras con SSH desde Linux y Windows
- Certificarse en LPIC 1 Para tener mayor salida laboral
- Practicaras con modelos de exámenes REALES de la certificación LPIC 1
- Seguridad informática en Linux
- Redes en Linux
- Cómo realizar Tareas Administrativas
Inicia desde 0 en Linux. Prepara la Certificación LPIC-1 con todo el contenido Teórico, practica y modelos de Examen: https://achirou.com/certificacion-lpic-linux