miércoles, 12 de diciembre de 2007

Utilizar umask para establecer los permisos predeterminados

Fuente: Linuteca

Cuando un usuario del sistema crea un fichero o directorio, éste tiene los permisos predeterminados del sistema, en el caso de Ubuntu los permisos predeterminados son 755. Esto se sabe escribiendo en la consola el comando ‘umask’ que al devolvernos 0022 si se lo restamos a 777 nos da 755. Sabiendo esto podemos ver que si un usuario crea un fichero o directorio cualquier otro usuario podrá leerlo o ejecutarlo, por lo tanto, esto es un fallo de seguiridad si este no es nuestro propósito.

Para solucionar el problema lo único que tenemos que hacer es, si queremos que el ‘grupo’ y los ‘otros’ no tengan ningun permiso sobre nuestros ficheros, tendrán que tener los permisos 700. Para conseguir esto restamos 777 - 700 y nos queda 077 que será el el parámetro que tendremos que pasarle al comando umask.
Ejemplo con permisos predeterminados:

ekhtor@macbook:~/pruebas$ umask

0022

ekhtor@macbook:~/pruebas$ ls -l

total 4

drwxr-xr-x 2 ekhtor ekhtor 4096 2007-12-06 19:32 pruebadir

-rw-r–r– 1 ekhtor ekhtor 0 2007-12-06 19:49 pruebafich

Podemos ver que al tener el valor de umask a 0022, si lo restamos a 777 los permisos de los ficheros son 755. Ahora si queremos que los permisos sean 700 hacemos la operacion 777 - 700 y el nuevo valor que le pasaremos a umask para cambiarlo será 077 como vimos antes.

Ejemplo:

ekhtor@macbook:~/pruebas$ umask 077

ekhtor@macbook:~/pruebas$ umask

0077

ekhtor@macbook:~/pruebas$ mkdir pruebadir

ekhtor@macbook:~/pruebas$ touch pruebafich

ekhtor@macbook:~/pruebas$ ls -l

total 4

drwx—— 2 ekhtor ekhtor 4096 2007-12-06 19:58 pruebadir

-rw——- 1 ekhtor ekhtor 0 2007-12-06 19:58 pruebafich

En la primera línea establecemos el nuevo valor de umask, en la siguiente comprobamos que lo hemos hecho correctamente, y luego, nos fijamos que al crear un directorio y un fichero tienen los nuevos permisos con los que los demás usuarios no podrán trabajar con ellos.

Si queremos cambiar el valor umask de todos los usuarios del sistema hay que editar el fichero /etc/profile como administrador(root) cambiar el valor de umask y guardar los cambios.

No hay comentarios: