viernes, 2 de octubre de 2015

Ejercitando nuestros privilegios

Ahora que hemos aprendido cómo funciona esto de los permisos, es hora de lucirse. Vamos a demostrar la solución a un problema común, configurar un directorio compartido. Imaginemos que tenemos dos usuarios llamados “bill” y “karen”. Ambos tienen colecciones de CDs de música y les gustaría crear un directorio compartido, donde cada uno guarde sus archivos de música como Ogg Vorbis o MP3. El usuario bill tiene acceso a privilegios de superusuario vía sudo.

La primera cosa que tiene que ocurrir es crear un grupo que tenga a bill y a karen como miembros. Usando la herramienta gráfica de gestión de usuarios, bill crea un grupo llamado music y le añade los usuarios bill y karen:

Figura 3: Creando un nuevo grupo con GNOME

A continuación, bill crea el directorio para los archivos de música:

[bill@linuxbox ~]$ sudo mkdir /usr/local/share/Music
Password:

Como bill está manipulando archivos fuera de su directorio home, requiere privilegios de superusuario. Después de crear el directorio, tendrá los siguientes propietarios y permisos:

[bill@linuxbox ~]$ ls -ld /usr/local/share/Music
drwxr-xr-x 2 root root 4096 2008-03-21 18:05 /usr/local/share/Music

Como podemos ver, el directorio tiene como propietario al root y tiene permisos 755. Para hacer que este directorio se pueda compartir, bill necesita cambiar el grupo propietario y sus permisos para permitir la escritura:

[bill@linuxbox ~]$ sudo chown :music /usr/local/share/Music
[bill@linuxbox ~]$ sudo chmod 775 /usr/local/share/Music
[bill@linuxbox ~]$ ls -ld /usr/local/share/Music
drwxrwxr-x 2 root music 4096 2008-03-21 18:05 /usr/local/share/Music

¿Pero qué significa todo esto? Significa que ahora tenemos un directorio, /usr/local/share/Music cuyo propietario es root y permite acceso de lectura y escritura al grupo music. El grupo music tiene como miembros a bill y karen, tanto bill como karen pueden crear archivos en el directorio /usr/local/share/Music. Otros usuarios pueden listar el contenido del directorio pero no pueden crear archivos dentro.

Pero aún tenemos un problema. Con los permisos actuales, los archivos y directorios creados en el directorio Music tendrán los permisos normales de los usuarios bill y karen:

[bill@linuxbox ~]$ > /usr/local/share/Music/test_file
[bill@linuxbox ~]$ ls -l /usr/local/share/Music
-rw-r--r-- 1 bill bill 0 2008-03-24 20:03 test_file

Realmente tenemos dos problemas. Primero, la umask en este sistema es 0022 la cual evita que los miembros del grupo puedan escribir en archivos pertenecientes a otros miembros del grupo. Esto no sería un problema si el directorio compartido sólo contuviera archivos, pero como este directorio contendrá música, y la música suele organizarse en una jerarquía de artistas y álbumes, los miembros del grupo necesitarán la capacidad de crear archivos y directorios dentro de los directorios creados por otros miembros. Necesitamos modificar la umask utilizada por bill y karen a 0002.

Segundo, cada archivo y directorio creado por un miembro será adjudicado al grupo primario del usuario en lugar de al grupo music. Esto se puede arreglar estableciendo el setgid bit en el directorio:

[bill@linuxbox ~]$ sudo chmod g+s /usr/local/share/Music
[bill@linuxbox ~]$ ls -ld /usr/local/share/Music
drwxrwsr-x 2 root music 4096 2008-03-24 20:03 /usr/local/share/Music

Ahora probaremos a ver si los nuevos permisos arreglan el problema. bill establece su umask a 0002, elimina el anterior archivo de prueba, y crea un nuevo archivo y directorio de pruebas:

[bill@linuxbox ~]$ umask 0002
[bill@linuxbox ~]$ rm /usr/local/share/Music/test_file
[bill@linuxbox ~]$ > /usr/local/share/Music/test_file
[bill@linuxbox ~]$ mkdir /usr/local/share/Music/test_dir
[bill@linuxbox ~]$ ls -l /usr/local/share/Music
drwxrwsr-x 2 bill music 4096 2008-03-24 20:24 test_dir
-rw-rw-r-- 1 bill music 0 2008-03-24 20:22 test_file
[bill@linuxbox ~]$

Tanto archivos como directorios se crean ahora con los permisos correctos para permitir a todos los miembros del grupo music crear archivos y directorios dentro del directorio Music.

El único problema que queda es umask. La configuración necesaria sólo dura hasta el final de la sesión y debe ser reconfigurada. En el Capítulo 11, veremos cómo hacer el cambio a una umask permanente.

No hay comentarios:

Publicar un comentario