El permiso de archivo y directorio de Unix tiene la forma de una estructura de 3×3. es decir, tres permisos (lectura, escritura y ejecución) disponibles para tres tipos de usuarios (propietario, grupos y otros).
En la salida del comando ls -l, los 9 caracteres de la posición 2 a la 10 representan los permisos para los 3 tipos de usuarios.
-rw-r--r-- 1 sathiya sathiya 272 Mar 17 08:22 test.txt
En el ejemplo anterior:
- El usuario (sathiya) tiene permiso de lectura y escritura
- El grupo tiene permiso de lectura
- Otros tienen permiso de lectura
Tres permisos de archivo:
- leer :permitido leer el contenido del archivo.
- escribir :permitido escribir en el archivo.
- ejecutar :permitido ejecutar el archivo como un programa/script.
Tres permisos de directorio:
- leer :permitido leer el contenido del directorio (ver archivos y subdirectorios en ese directorio).
- escribir :permitido escribir en el directorio. (crear archivos y subdirectorios en ese directorio)
- ejecutar :permitido entrar en ese directorio.
Valores numéricos para los permisos de lectura, escritura y ejecución:
- leer 4
- escribe 2
- ejecutar 1
Para tener una combinación de permisos, agregue los números requeridos. Por ejemplo, para permiso de lectura y escritura, es 4+2 =6.
Cambiar permisos de archivos y directorios mediante el comando Chmod
Puede usar la representación octal o la representación simbólica para cambiar el permiso de un archivo o directorio.
Representación octal para permisos:
- El primer número es para el usuario
- El segundo número es para el grupo
- El tercer número es para los demás
Por ejemplo, asigne lectura, escritura (4+2 =6) al usuario y lectura (4) al grupo y otros.
$ chmod 644 filename
Por ejemplo, dé lectura, ejecución (4 + 1 =5) al usuario y lectura (4) al grupo, y nada (0) a los demás.
$ chmod 540 filename
Por ejemplo, asigne lectura, escritura ( 4 + 2 =6 ) al usuario y nada ( 0 ) al grupo, y lectura ( 4 ) a los demás.
$ chmod 604 filename
Umask 022 es responsable del permiso predeterminado de un archivo
El valor predeterminado de umask es 0022, que decide el permiso predeterminado para un nuevo archivo o directorio. El permiso predeterminado para un directorio es 0777, para los archivos, los permisos son 0666, del cual se deduce el valor predeterminado de umask 0022 para obtener los archivos recién creados o el permiso de directorio.
El permiso predeterminado final para un archivo se calcula como se muestra a continuación:
- Permiso de archivo predeterminado:666
- Máscara predeterminada:022
- Permiso de archivo predeterminado final:644
El permiso predeterminado final para un directorio se calcula como se muestra a continuación:
- Permiso de directorio predeterminado:777
- Máscara predeterminada:022
- Permiso de directorio predeterminado final:755
Puede cambiar el valor de umask al valor apropiado de lo que necesita según el cálculo anterior. Por ejemplo, si no desea que nadie más que el usuario (propietario) haga nada en el archivo o directorio, puede asignar umask como 0077.
$ umask 0077
Después de esto, si crea un archivo o directorio, tendrá permisos solo para el usuario como se muestra a continuación:
$ > testfile $ ls -l testfile -rw------- 1 sathiya sathiya 0 Mar 17 08:23 testfile