Continuando el tema ya sabemos administrar a los usuarios y grupos ahora toca el turno de los directorios y ficheros. Pero antes de empezar debemos saber algunas cosas sobre el sistema de ficheros en Linux.
Definición y características.
- Para Linux todo es un fichero.
- Un fichero es un conjunto de información relacionada usualmente almacenada en un dispositivo de memoria (disco, cd-rom ...)
- En Linux hay 7 tipos de ficheros:
- Comunes (ficheros de texto, ficheros binarios)
- Carpetas: contiene referencias de nombres para otros ficheros
- Enlaces simbólicos: un puntero a un fichero
- Dispositivos de caracteres
- Dispositivos de bloques
- Local Domain Sockets
- Named pipes.
Para saber que tipo de fichero es podemos utilizar el comando:
$ ls -l
Este comando nos devuelve una información donde el primer caracter no indica el tipo:
- -: normal
- b: fichero controlador de dispositivos orientado a bloques
- c: fichero controlador de dispositivos orientado a caracteres
- d: directorio
- l: enlace simbolico
- s: socket
- p: named pipe
Tipos de permisos
Cada ficheros y directorio posee tres conjuntos de permisos del tipo:
- r: lectura
- w: escritura
- x: ejecución
Estos permisos son asociados a los usuarios, grupos o usuarios públicos. Y para establecer estos permisos, Linux utiliza la notación octal (base 8) de modo que querian representados de la siguiente manera:
- r: 4
- w: 2
- x: 1
Existen permisos especiales denominados:
- setpid: 4000 En lugar del permiso de ejecución x aparecerá s. Este fichero cuando se ejecuta permite convertirte en el dueño.
- setgid: 2000 En lugar del permiso de ejecución x aparecerá s. Esta carpeta cuando se ejecuta permite convertirte en el dueño.
- sticky: 1000 Permite proteger de borrados accidentales de las carpetas, de forma que solo puedan ser borradas por el propietario, esta representado mediante t en el comando ls.
Como establecer los permisos y propietarios de los ficheros.
Para establecer los propietarios de los ficheros y/o carpetas disponemos del comando chown. Su uso lo podremos ver con el comando man:
$ man chown
Pero la opciones basicas son:
- Para cambiar el propietario de un fichero o carpeta:
- $ chown usuario fichero
- Para cambiar el usuario y el grupo de un fichero o carpeta
- $ chown usaurio.grupo fichero.
Para cambiar los permisos utilizaremos el comando chmod, para más información de este comando:
$ man chmod
El comando chmod se emplea utilizando símbolos como a,u,g,o que representan a todos (a "all"), al usuario (u), al grupo (g) y a todos los demás (o). Existen símbolos para agregar (+) quitar (-) o dejar invariantes los permisos (=). Además tendrán que usarse los símbolos característicos para cada tipo de permiso. Para el permiso de lectura (r), para el permiso de escritura (w) y para el permiso de ejecución (x). Solo el dueño del archivo puede cambiarlo con él; excepción del root que también lo puede hacer. Ahora bien, esta es la forma simbólica. Pero existe una forma un poco más sistemática que es la forma de representación octal. El comando chmod permite establecer los permisos de un archivo por medio de un número octal. Comúnmente nosotros usamos para contar una representación decimal (0,1,2,3,4,5,6,7,8,9) pero en una representación octal solo se usan 8 números (0,1,2,3,4,5,6,7). Para establecer el permiso habrá que sumar los dígitos octales de acuerdo a una tabla que se dará a continuación. Dado que no se realiza acarreo, la suma será trivial.
Dicho esto para establecer los permisos lo hariamos de la siguiente manera:
$chmod a quien +- permiso a que (chmod a-rw \home\usario\permiso.txt)