Permisos
Para visualizar los permisos de un archivo/directorio "ls -l"
t p g o
d rwx rwx rwx
t=tipo, p=propietario, g=grupo, o=otros.
La información es la misma que entregan los navegadores de archivos gráficos
$ ls -lh
lrwxrwxrwx 1 juaramir juaramir 9 ene 3 15:59 Carpeta_D3 -> D1/D2/D3/
-rw-rw-r-- 1 juaramir juaramir 0 ene 3 15:52 codigo.c
drwxrwxr-x 3 juaramir juaramir 4,0K ene 3 15:41 D1
Tipo de usuario
propietario
grupo
otros
Permiso
r: lectura
w: escritura
x: ejecución
chmod (cambiar permisos)
Octal
Para facilitar el cambio de permisos se utiliza el sistema octal
Se utiliza un dígito para el tipo de usuario, por lo que se usan 3
El primero para el "propietario" (el más significativo)
El segundo para el "grupo"
El tercero para "otros"
Cada digito se forma utilizando el siguiente código octal:
Sin Permiso 0
Permiso de Ejecución (x) 1
Permiso de Escritura (w) 2
Permiso de Lectura (r) 4
Ejemplo:
Al archivo "codigo.c" se le desea dar el siguiente permiso
Propietario: Lectura, escritura, ejecución
Grupo: Lectura, ejecución
Otros: Lectura
Propietario Grupo Otros
Lectura = 4 Lectura = 4 Lectura = 4
Escritura = 2 Escritura = 0 Escritura = 0
Ejecución = 1 Ejecución = 1 Ejecución = 0
Total = 7 Total = 5 Total = 4
El comando a ejecutar:
$ chmod 754 codigo.c
$ ls -l codigo.c
-rwxr-xr-- 1 juaramir juaramir 0 ene 3 15:52 codigo.c
Cambiar permisos sin código octal (chmod)
Vamos a utilizar unas opciones según nuestras necesidades, y estas serán:
u: usuario Dueño
g: Grupo Dueño
o: Otros Usuarios
a: Todos los usuarios
Sabiendo esto estamos en condiciones de entender esta forma de usar chmod, que seria así:
$ chmod [QUIEN][+/-][permiso] [archivo o carpeta]
[QUIEN] es alguno de los parámetros anteriormente explicados (u,g,o,a),
[+/-] es para asignar o quitar el permiso que elijamos.
[permiso] podemos colocar:
r: lectura
x: ejecución
w: escritura
Ejemplo:
$ chmod a+x archivo
chmod a+x carpeta/
Aquí le hemos asignado permisos de ejecución para todos los usuarios en el archivo o carpeta de prueba que utilizamos.
Además como en el método anterior, la opción "-R" sigue disponible en caso que deseemos hacerlo recursivamente para un directorio.
$ chmod -R a+rwx carpeta/
Aquí le asignamos, en forma recursiva, a todos los usuarios permisos de lectura, escritura y ejecución sobre el directorio ``carpeta''.