Comprensión de los permisos de archivo en Linux

4 mag 2021 7 min di lettura
Comprensión de los permisos de archivo en Linux
Indice dei contenuti

Introducción

En Linux, los permisos, atributos y propiedad de los archivos controlan el nivel de acceso que los procesos del sistema y los usuarios tienen a los archivos. Esto asegura que solo los usuarios y procesos autorizados puedan acceder a archivos y directorios específicos.

Autorizar archivos de Linux

El modelo de permisos básicos de Linux funciona asociando cada archivo del sistema con un propietario y un grupo y asignando permisos de derechos de acceso para tres clases diferentes de usuarios:

  • El propietario del archivo.
  • Los miembros del grupo.
  • Otros (todos los demás).

La propiedad del archivo se puede cambiar usando los comandos chown y chgrp.

Se aplican tres tipos de permisos de archivo a cada clase de usuarios:

  • Permiso para leer.
  • El permiso de escritura.
  • Permiso para ejecutar.

Este concepto le permite controlar qué usuarios pueden leer el archivo, escribir en el archivo o ejecutar el archivo.

Para ver los permisos del archivo, use el comando ls:

ls -l file_name
-rw-r--r-- 12 noviello users 12.0K Apr  28 10:10 file_name
|[-][-][-]-   [------] [---]
| |  |  | |      |       |
| |  |  | |      |       +-----------> 7. Group
| |  |  | |      +-------------------> 6. Owner
| |  |  | +--------------------------> 5. Alternate Access Method
| |  |  +----------------------------> 4. Others Permissions
| |  +-------------------------------> 3. Group Permissions
| +----------------------------------> 2. Owner Permissions
+------------------------------------> 1. File Type

El primer carácter indica el tipo de archivo. Puede ser un archivo normal ( -), directorio ( d), enlace simbólico ( l) u otros tipos especiales de archivos. Los siguientes nueve caracteres representan los permisos del archivo, tres tripletes de tres caracteres cada uno. El primer triplete muestra los permisos del propietario, el segundo los permisos del grupo y el último triplete muestra los permisos de todos los demás.

En el ejemplo anterior (rw-r--r--) significa que el propietario del archivo tiene permisos de lectura y escritura (rw-), el grupo y otros solo tienen permisos de lectura (r--).

Los permisos de archivo tienen un significado diferente según el tipo de archivo.

Cada uno de los tres tripletes de autorización puede constar de los siguientes caracteres y tener diferentes efectos, dependiendo de si están configurados en un archivo o en un directorio:

Efecto de los permisos en los archivos

AutorizzazionePersonaggioSignificato su file
Leggere-Il file non è leggibile. Non è possibile visualizzare il contenuto del file.
rIl file è leggibile.
Scrivi-Il file non può essere cambiato o modificato.
wIl file può essere cambiato o modificato.
Eseguire-Il file non può essere eseguito.
xIl file può essere eseguito.
sSe trovato nella userterzina, imposta il setuidbit. Se trovato nella groupterzina, imposta il setgidbit. Significa anche che la xbandiera è impostata.
Quando i flag setuido setgidsono impostati su un file eseguibile, il file viene eseguito con i privilegi di proprietario e / o gruppo del file.
SUguale a s, ma la xbandiera non è impostata. Questo flag è usato raramente sui file.
tSe trovato nella othersterzina, imposta il stickybit.
Significa anche che la xbandiera è impostata. Questo flag è inutile sui file.
TUguale a, tma la xbandiera non è impostata. Questo flag è inutile sui file.

Efecto de los permisos en directorios (carpetas)

Los directorios son tipos especiales de archivos que pueden contener otros archivos y directorios.

AutorizzazionePersonaggioSignificato sulla directory
Leggere-Non è possibile visualizzare il contenuto della directory.
rÈ possibile visualizzare il contenuto della directory.
(ad esempio, puoi elencare i file all'interno della directory con ls.)
Scrivi-Il contenuto della directory non può essere modificato.
wIl contenuto della directory può essere modificato.
(ad esempio, puoi creare nuovi file , eliminare file .. ecc.)
Eseguire-La directory non può essere modificata in.
xLa directory può essere esplorata utilizzando cd.
sSe trovato nella userterzina, imposta il setuidbit. Se trovato nella groupterzina imposta il setgidbit. Significa anche che la xbandiera è impostata. Quando il setgidflag è impostato su una directory, i nuovi file creati al suo interno ereditano l'ID del gruppo di directory (GID) invece dell'ID del gruppo principale dell'utente che ha creato il file.
setuidnon ha effetto sulle directory.
SUguale a s, ma la xbandiera non è impostata. Questa bandiera è inutile sulle directory.
tSe trovato nella othersterzina, imposta il stickybit.
Significa anche che la xbandiera è impostata. Quando lo sticky bit è impostato su una directory, solo il proprietario del file, il proprietario della directory o l'utente amministrativo può eliminare o rinominare i file all'interno della directory.
TUguale a t, ma la xbandiera non è impostata. Questa bandiera è inutile sulle directory.

Cambiar los permisos de archivo

Los permisos de archivo se pueden cambiar usando el comando chmod. Solo root, el propietario del archivo o el usuario con privilegios de sudo pueden cambiar los permisos de un archivo. Tenga mucho cuidado al usarlo chmod, especialmente cuando cambie los permisos de forma recursiva. El comando puede tomar uno o más archivos y / o directorios separados por espacios como argumentos.

Los permisos se pueden especificar mediante un modo simbólico, un modo numérico o un archivo de referencia.

Método simbólico (texto)

La sintaxis del comando chmodcuando se usa el modo simbólico tiene el siguiente formato:

chmod [OPTIONS] [ugoa…][-+=]perms…[,…] FILE...

El primer grupo de banderas ( [ugoa…]), las banderas de usuario, define las clases de usuario para las que se cambian los permisos de archivo.

  • u - El propietario del archivo.
  • g - Usuarios que son miembros del grupo.
  • o - Todos los demás usuarios.
  • a- Todos los usuarios, idénticos a ugo.

Cuando se omite el indicador de usuario, el valor predeterminado es a.

El segundo conjunto de banderas ( [-+=]), las banderas de operación, define si los permisos deben eliminarse, agregarse o establecerse:

  • - - Elimina los permisos especificados.
  • + - Agrega los permisos especificados.
  • =- Cambiar los permisos actuales con los permisos especificados. Si no se otorgan permisos después del símbolo =, todos los permisos se eliminan de la clase de usuario especificada.

Permisos ( perms...) se establecen explícitamente la utilización de cero o uno o más de las siguientes letras: r, w, x, X, s, y t. Utilice una sola letra del conjunto u, gy ocuando se copia Permisos de uno a la clase de otro usuario.

Cuando establezca permisos para más de una clase de usuario ( [,…]), use comas (sin espacios) para separar los modos simbólicos.

A continuación se muestran algunos ejemplos de cómo utilizar el comando chmoden modo simbólico.

Otorgue permiso a los miembros del grupo para ejecutar el archivo, pero no para leerlo y escribirlo:

chmod g=x filename

Quite el permiso de escritura para todos los usuarios:

chmod a-w filename

Elimine repulsivamente el permiso de ejecución para otros usuarios:

chmod -R o-x dirname

Elimine el permiso de lectura, escritura y ejecución para todos los usuarios excepto el propietario del archivo:

chmod og-rwx filename

Lo mismo también se puede hacer usando el siguiente formulario:

chmod og= filename

Otorgue permisos de lectura, escritura y ejecución al propietario del archivo, permisos de lectura para el grupo del archivo y ningún permiso a todos los demás usuarios:

chmod u=rwx,g=r,o= filename

Método numérico

La sintaxis del comando chmod cuando se usa el modo simbólico tiene el siguiente formato:

chmod [OPTIONS] NUMBER FILE...

Al usar el modo numérico, puede establecer permisos para las tres clases de usuarios (propietario, grupo y todos los demás) al mismo tiempo.

El número de autorización puede ser un número de 3 o 4 dígitos. Cuando se utiliza un número de 3 dígitos, el primer dígito representa los permisos del propietario del archivo, el segundo del grupo de archivos y el último de todos los demás usuarios.

Cada permiso de escritura, lectura y ejecución tiene el siguiente valor numérico:

  • r (leer) = 4
  • w (escribir) = 2
  • x (correr) = 1
  • sin permiso = 0

El número de permisos de una clase de usuario específica está representado por la suma de los valores de los permisos para ese grupo.

Para conocer los permisos de archivo en modo numérico, simplemente calcule los totales para todas las clases de usuarios. Por ejemplo, para otorgar permisos de lectura, escritura y ejecución al propietario del archivo, permisos de lectura y ejecución para el grupo del archivo y permisos de lectura solo para todos los demás usuarios, haga lo siguiente:

  • Propietario: rwx = 4 + 2 + 1 = 7
  • Grupo: rx = 4 + 0 + 1 = 5
  • Otros: rx = 4 + 0 + 0 = 4

Usando el método anterior, llegamos al número 754, que representa los permisos deseados.

Para configurar las banderas setuid, setgid y , sticky bituse el número de cuatro dígitos.

Cuando se utiliza el número de 4 dígitos, el primer dígito tiene el siguiente significado:

  • setuid = 4
  • setgid = 2
  • pegajoso = 1
  • sin cambio = 0

Los siguientes tres dígitos tienen el mismo significado que cuando se usa un número de 3 dígitos.

Si el primer dígito es 0, se puede omitir y el modo se puede representar con 3 dígitos. El modo numérico 0755es el mismo que 755.

Para calcular el modo numérico, también puede utilizar otro método (método binario), pero es un poco más complicado. Saber cómo calcular el modo numérico utilizando 4, 2 y 1 es suficiente para la mayoría de los usuarios.

Puede verificar los permisos de archivos en notación numérica usando el comando stat:

stat -c "%a" file_name

A continuación, se muestran algunos ejemplos de cómo utilizar el comando chmoden modo numérico:

Asigne al propietario del archivo permisos de lectura y escritura y permisos de lectura solo a los miembros del grupo y todos los demás usuarios:

chmod 644 dirname

Otorgue al propietario del archivo permisos de lectura, escritura y ejecución, permisos de lectura y ejecución a los miembros del grupo y ningún permiso a todos los demás usuarios:

chmod 750 dirname

Otorgue permisos de lectura, escritura y ejecución y un poco de pega a un directorio determinado:

chmod 1777 dirname

Establece recursivamente permisos de lectura, escritura y ejecución para el propietario del archivo y ningún permiso para todos los demás usuarios en un directorio determinado:

chmod -R 700 dirname

Conclusión

En Linux, el acceso a los archivos está restringido mediante el uso de permisos, atributos y propiedad de los archivos. Para cambiar los permisos del archivo use el comando chmod.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.