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 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:

DOMINIODESCRIPCIÓN
ls -l foo.shVerificar permisos del archivofoo.sh
ls -ld barVerificar 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:

ALCANCESÍMBOLODESCRIPCIÓN
UsuariouEl propietario del archivo o directorio
GrupogEl grupo de usuarios que pueden acceder al archivo o directorio.
OtrooOtros usuarios (mundo)
TodoaTodos los usuarios

Permisos de archivos

TIPO DE PERMISOSÍMBOLOSI UN ARCHIVO TIENE ESTE PERMISO, PUEDE:SI UN DIRECTORIO TIENE ESTE PERMISO, PUEDE:
LeerrAbrir y ver el contenido del archivo (cat, head, tail)Leer el contenido del directorio (ls, du)
EscribirwEditar, 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)
EjecutarxEjecutar el archivoIngrese el directorio (cd); sin x, los permisos r y del directorio son inútiles
Ninguno-Hacer nadaHacer nada

Comandos relacionados con permisos

DOMINIODESCRIPCIÓN
chmod permission fooCambiar los permisos de un archivo o directorio foo según permission en formato de notación simbólica u octal. Ejemplos:
chmod +x fooOtorga permisos de ejecución a todos los usuarios para foo usar notación simbólica.
chmod 777 fooOtorga permisos de lectura, escritura y ejecución a todos los usuarios para foo usar notación octal.
chown user2 fooCambiar el propietario de foo user2.
chgrp group2 fooCambiar el grupo al que foo pertenece group2.
umaskObté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 -iInvocar privilegios de superusuario.
idEncuentre su identificación de usuario y su identificación de grupo.
groupsEncuentra 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ÉTODOFORMATO DE PERMISOEJEMPLOSAPLICACIÓN SIN CHMOD
Notación simbólicaUna 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 octalnúmero octal de tres dígitos que va del 000 al 777774
640
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ÓLICACAMBIO 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 OCTALPERMISO(S) CONCEDIDO(S)SIMBÓLICO
0Ninguno[u/g/o]-rwx
1Sólo permiso de ejecución[u/g/o]=x
2Sólo permiso de escritura[u/g/o]=w
3Permisos de escritura y ejecución únicamente: 2 + 1 = 3[u/g/o]=wx
4Sólo permiso de lectura[u/g/o]=r
5Permisos de lectura y ejecución únicamente: 4 + 1 = 5[u/g/o]=rx
6Permisos de lectura y escritura únicamente: 4 + 2 = 6[u/g/o]=rw
7Todos 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 OCTALCAMBIO 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,
  • ↔ 0102 ⇔ 28, y< /span>
  • ↔ 0012 ⇔ 18.

Por lo tanto, cada combinación de rw y 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 BINARIANOTACIÓN OCTAL
rwxr-xr-x111 101 101755
rw-r--r--110 100 100644
rwx------111 000 000700
r-xr-xr-x101 101 101555

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: 

DOMINIODESCRIPCIÓN
umaskEncuentre sus permisos predeterminados de usuario y grupo cuando cree un nuevo archivo o directorio

Ejemplos:

SALIDA DE MÁSCARA DE USUARIOPERMISOS DE DIRECTORIO PREDETERMINADOSPERMISOS DE ARCHIVOS PREDETERMINADOS
0002Octal: 777 – 2 = 775
Simbólico: rwxrwxr-x
Octal: 666 – 2 = 664
Simbólico: rw-rw-r--
0022Octal: 777 – 22 = 755
Simbólico: rwxr-xr-x
Octal: 666 – 22 = 644
Simbólico: rw-r--r--
0314Octal: 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 groups.

Uso:

DOMINIODESCRIPCIÓN
idEncuentre su ID de usuario (uid) y su ID de grupo (gid)
groupsEncuentre el grupo al que pertenece su usuario

Ejemplo:

ID SALIDATDESCRIPCIÓ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: staffeveryone localaccounts
GROUPS PRODUCCIÓNDESCRIPCIÓN
staff everyone localaccountsTu 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)
$ suInvocar shell de superusuarioPassword: 
#
$ sudo some_commandInvocar privilegios de superusuario al ejecutarsome_commandPassword:
$
$ sudo -iInvocar shell de superusuario si su está deshabilitadoPassword:
#

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.

DOMINIODESCRIPCIÓN
sudo chown user2 fooTransferir la propiedad del usuario de foo user2
sudo chown 102 fooTransferir 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.

DOMINIODESCRIPCIÓN
chgrp group2 fooTransferir la propiedad del archivo/directorio foo al grupo group2
chgrp 2 fooTransferir 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 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

¿Te gustaría enterarte de cuando lanzamos descuentos al Máximo o Nuevos Cursos?