GNU/Linux >> Tutoriales Linux >  >> Linux

Comprender los permisos de archivos de Linux

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

Permisos de archivo de Linux #

El modelo básico de permisos de Linux funciona asociando cada archivo del sistema con un propietario y un grupo y asignando permisos 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 el chown y chgrp comandos.

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

  • El permiso de lectura.
  • El permiso de escritura.
  • El permiso de ejecución.

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

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

ls -l file_name
-rw-r--r-- 12 linuxize 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 ), un enlace simbólico (l ), u otros tipos especiales de archivos. Los siguientes nueve caracteres representan los permisos de archivo, tres tripletes de tres caracteres cada uno. El primer triplete muestra los permisos del propietario, el segundo grupo los permisos 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 los demás 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 permisos se puede construir con los siguientes caracteres y tener diferentes efectos, dependiendo de si se configuran en un archivo o en un directorio:

Efecto de los permisos en los archivos

Efecto de los permisos en directorios (carpetas)

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

Permiso Personaje Significado en archivo
Leer - El archivo no se puede leer. No puede ver el contenido del archivo.
r El archivo es legible.
Escribir - El archivo no se puede cambiar ni modificar.
w El archivo se puede cambiar o modificar.
Ejecutar - El archivo no se puede ejecutar.
x El archivo se puede ejecutar.
s Si se encuentra en el user triplete, establece el setuid poco. Si se encuentra en el group triplete, establece el setgid poco. También significa que x está establecido.
Cuando el setuid o setgid las banderas se establecen en un archivo ejecutable, el archivo se ejecuta con el propietario del archivo y/o privilegios de grupo.
S Igual que s , pero el x la bandera no está configurada. Esta marca rara vez se usa en archivos.
t Si se encuentra en los others triplete, establece el sticky bit.
También significa que x se establece la bandera. Esta bandera es inútil en los archivos.
T Igual que, t pero el x la bandera no está configurada. Esta bandera es inútil en los archivos.

Cambio de permisos de archivo #

Los permisos de archivo se pueden cambiar usando chmod dominio. Solo la raíz, el propietario del archivo o el usuario con privilegios sudo pueden cambiar los permisos de un archivo. Tenga mucho cuidado al usar chmod , especialmente cuando se cambian recursivamente los permisos. El comando puede aceptar 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 de chmod El comando cuando se usa el modo simbólico tiene el siguiente formato:

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

El primer conjunto de banderas ([ugoa…] ), marcas de usuarios, define las clases de usuarios para los que se cambian los permisos del archivo.

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

Cuando se omite la bandera de los usuarios, el valor predeterminado es a .

El segundo conjunto de banderas ([-+=] ), la operación marca, define si los permisos se eliminarán, agregarán o establecerán:

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

Los permisos (perms... ) se establecen explícitamente usando cero o una o más de las siguientes letras:r , w , x , X , s y t . Usa una sola letra del conjunto u , g y o al copiar permisos de una clase a otra de los usuarios.

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

Aquí hay algunos ejemplos de cómo usar el chmod comando en modo simbólico:

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

    chmod g=x filename
  • Eliminar el permiso de escritura para todos los usuarios:

    chmod a-w filename
  • Elimine recursivamente el permiso de ejecución para otros usuarios:

    chmod -R o-x dirname
  • Elimine los permisos 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 lograr utilizando el siguiente formulario:

    chmod og= filename
  • Otorgue permisos de lectura, escritura y ejecución al propietario del archivo, permisos de lectura al 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 de chmod El comando cuando se usa el modo simbólico tiene el siguiente formato:

chmod [OPTIONS] NUMBER FILE...

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

El número de permiso 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 el grupo del archivo y el último 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 (ejecutar) =1
  • sin permisos =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 del archivo en modo numérico, simplemente calcule los totales para las clases de todos los usuarios. Por ejemplo, para otorgar permisos de lectura, escritura y ejecución al propietario del archivo, permisos de lectura y ejecución al grupo del archivo y permisos de solo lectura a todos los demás usuarios, haría lo siguiente:

  • Propietario:rwx=4+2+1=7
  • Grupo:r-x=4+0+1=5
  • Otros:r-x=4+0+0=4

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

Para configurar el setuid , setgid y sticky bit banderas, use un 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 cambios =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 la moda se puede representar con 3 dígitos. El modo numérico 0755 es lo mismo que 755 .

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

Puede verificar los permisos del archivo en la notación numérica usando el stat comando:

stat -c "%a" file_name

Aquí hay algunos ejemplos de cómo usar el chmod comando en modo numérico:

  • Otorgue permisos de lectura y escritura al propietario del archivo y solo permisos de lectura a los miembros del grupo y a 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 bit adhesivo a un directorio determinado:

    chmod 1777 dirname
  • Establezca 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 permisos, atributos y propiedad de los archivos. Para cambiar los permisos del archivo, use chmod comando.


Linux
  1. Permisos de Linux:una introducción a chmod

  2. Linux:¿comprensión de los permisos y tipos de archivos de Unix?

  3. Permisos de archivo en Linux con ejemplo

  4. Verifique los permisos de archivos de Linux con ls

  5. Comprensión de cómo Umask controla los permisos iniciales de archivo/directorio en Linux

Comando Chmod:cómo cambiar los permisos de archivo en Linux

Comprender los procesos en Linux

Comprender los permisos de archivos de Linux

Ejemplos de comandos chmod de Linux

Comprender las rutas múltiples de Linux (dm-multipath)

Comprender los permisos básicos de archivos y la propiedad en Linux

    Permiso Personaje Significado en el directorio
    Leer - No se puede mostrar el contenido del directorio.
    r Se puede mostrar el contenido del directorio.
    (p. ej., puede enumerar archivos dentro del directorio con ls .)
    Escribir - El contenido del directorio no se puede modificar.
    w El contenido del directorio se puede modificar.
    (p. ej., puede crear archivos nuevos, eliminar archivos, etc.)
    Ejecutar - No se puede cambiar el directorio.
    x El directorio se puede navegar usando cd .
    s Si se encuentra en el user triplete, establece el setuid poco. Si se encuentra en el group triplete establece el setgid poco. También significa que x se establece la bandera. Cuando el setgid se establece en un directorio, los nuevos archivos creados en él heredan el ID de grupo de directorio (GID) en lugar del ID de grupo principal del usuario que creó el archivo.
    setuid no tiene efecto en los directorios.
    S Igual que s , pero el x la bandera no está configurada. Esta bandera es inútil en los directorios.
    t Si se encuentra en los others triplete, establece el sticky bit.
    También significa que x se establece la bandera. Cuando el sticky bit se establece en un directorio, solo el propietario del archivo, el propietario del directorio o el usuario administrativo pueden eliminar o cambiar el nombre de los archivos dentro del directorio.
    T Igual que t , pero el x la bandera no está configurada. Esta bandera es inútil en los directorios.