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''.