Vous êtes sur la page 1sur 22

CAPÍTULO 6. Permisos. Gestión de usuarios y grupos.

CAPÍTULO 6.

Permisos. Gestión de usuarios y grupos.
!
Linux es multitarea y multiusuario, y esto último indica que varios usuarios pueden estar a la vez en el sistema ejecutando
tareas simultáneamente, por lo tanto es necesario identificar los usuarios y las acciones que pueden llevar a cabo, y esto se hace a
través de las cuentas de usuarios y los grupos. La identidad del usuario junto al grupo/s al/a los que pertenece determina los derechos
de acceso a los ficheros, es decir, la forma en la que podrá hacer uso de ellos, si puede. En este capítulo vamos a estudiar la forma de
gestionar los usuarios y los grupos, así como los permisos de acceso a los ficheros del sistema. Pero... ¿cómo podemos cambiar los
permisos? ¿y el grupo y/o usuario al que pertenece un fichero? ¿Cómo añadimos, borramos o cambiamos usuarios y grupos?
Veámoslo con más detalle...

!
6.1. Permisos.
!
En los sistemas Unix, un fichero tiene un dueño (normalmente el usuario que lo creó) y un grupo al que pertenece. Partiendo
de esta estructura el sistema asigna permisos de uso para: el propietario, el grupo al que pertenece, y a resto de usuarios. Además,
para cada uno de los tres anteriores existen otros tres tipos de permisos básicos: lectura (r), escritura (w) y ejecución (x). C o m o
hemos visto en múltiples ocasiones a lo largo del libro, para poder ver estos permisos, del propietario y del grupo del fichero,
ejecutamos desde la consola: ls -l . Veamos un ejemplo:

!
La salida del comando ls del ejemplo anterior muestra varias cosas: que el fichero pertenece a root y al grupo root. El primer
guión por la izquierda indica el que el fichero es normal. Posibilidades para ese primer carácter:

manuel@turion:~> ls -l /etc/fstab!
-rw-r--r-- 1 root root 790 jul 26 13:12 /etc/fstab

!
d : indica que es un directorio. l : un enlace simbólico. c : un dispositivo de caracteres.

b : un dispositivo de bloques. p : canalización con nombre (lo vemos más adelante).

- : es un fichero normal. s: socket (puerto).

Además, la salida muestra los permisos para ese fichero. A partir de ahora cada vez que digamos “fichero” podemos estar
refiriéndonos también a cualquier tipo de fichero que hemos visto.

En Unix y derivados existen tres tipos de permisos aplicables a ficheros y directorios: lectura (r, read), escritura (w, write) y
ejecución (x, execution). Estos permisos, nueve en total, se agrupan de tres en tres: los tres primeros se asignan al usuario propietario
del fichero/directorio/enlace (u, user), los tres segundos se asignan al grupo principal al que pertenece el usuario propietario (g,
group) y los tres últimos se asignan al resto de usuarios (o, others).

!1
CAPÍTULO 6. Permisos. Gestión de usuarios y grupos.

Dando un poco más de detalle sobre como actúan los permisos

a) Lectura denotado como "r".

- Fichero: Podemos leer el contenido del fichero.

- Directorio: Podemos leer el contenido del directorio (mediante ls por ejemplo).

b) Escritura denotado como "w".

- Fichero: Podemos modificar el contenido del fichero.

- Directorio: Podemos modificar el contenido del directorio. Podemos crear y borrar ficheros dentro del directorio.

c) Ejecución denotado como "x".

- Fichero: Podemos ejecutar el fichero.

- Directorio: Podemos entrar al directorio, y escribir (mediante cd por ejemplo).

Es decir, que los permisos de un fichero/directorio están condicionados por los permisos del directorio donde reside.
Ejemplo. Sea el directorio “.../restringido“ con los permisos rw-rw-rw- (lectura y escritura para el dueño, el grupo del dueño y el
resto), y sea el fichero “ejecutamesipuedes” con los permisos rwxrwxrwx. El fichero no se podrá ejecutar porque el directorio no
lo acepta. Con esto se consigue un nivel más de seguridad.

Antes de conocer los diferentes comandos para la manipulación conviene ver una tabla de equivalencia entre binario-octal-
permisos que nos ayudará a comprender y usarlos:

OCTAL BINARIO PERMISOS Permiso Valor

0 000 NINGUNO Lectura (r) 4

1 001 --x Escritura (w) 2

2 010 -w- Ejecución (x) 1

3 011 -wx Ninguno (-) 0

4 100 r--

5 101 r-x

6 110 rw-

7 111 rwx

!
Lo primero que tenemos que tener en cuenta es que vamos a usar numeración octal y que por lo tanto los dígitos sólo
llegarán hasta el número 7. Si no te acuerdas qué es esto será mejor que repases los primeros temas.

Como vemos en la tabla hay tres posiciones para los permisos y si nos fijamos la activación de un bit equivale a la activación
de ese permiso. Por otro lado un bit activado en una posición en binario equivale en octal a un número. Pongamos por ejemplo el 5
en octal, equivale a 101 en binario, es decir las posiciones 1 y 3 (de derecha a izquierda) que equivalen a los bit activos con valor 1 y
4, que suman 5. El permiso 5 significa lectura (r) y ejecución (x). Para hacerlo más claro diremos que la lectura (r) vale 4, la
escritura (w) vale 2 y que la ejecución vale (x) vale 1. Si sumamos obtenemos los permisos activados.

Ya sabemos que los permisos se agrupan de 3 en 3. Si aplicamos lo aprendido podemos formar los grupos de permisos
teniendo en cuenta que el dígito más significativo representan los permisos para el dueño, el dígito de en medio . Mejor con un

!2
CAPÍTULO 6. Permisos. Gestión de usuarios y grupos.

ejemplo. Supongamos que un fichero tiene los permisos 754, esto significa que el dueño tiene todos los permisos sobre él, que los
miembros del grupo principal del dueño sólo de lectura (r) y de ejecución (x) y el que el resto sólo tiene de lectura (r) . Otro ejemplo:
660. En este caso tanto el dueño como su grupo podrán acceder al fichero para leer y escribir, pero en caso de ser un ejecutable no
podrán activarlo; para el resto de usuarios no se contemplan permisos.

!
Los bits “S”.
!
Existen otros tres permisos que dan un grado más de protección o de versatilidad, son: suid, sgid y el sticky bit. Estos
permisos que aparecen en el lugar del permiso de ejecución correspondiente, se activan anteponiendo a los permisos rwx otro más.
Por ejemplo suid vale 4, sgid 2 y el sticky bit 1. Por ejemplo:

$ chmod 4755

En este ejemplo de arriba se establece el bit de usuario S.

Los “bit s” aparecerán en mayúsculas sí no está establecido el permiso de ejecución correspondiente.

S —> rw-!

s —> rwx!

a) SUID (Set user id, establecer identificación de usuario). Existen ocasiones en las que el usuario que ejecuta un programa
no debería ejecutarlo con los privilegios propios, sino que debería hacerlo con los privilegios del dueño real, pero que a la vez
sólo tenga repercusión sobre sí mismo. Por ejemplo los comandos passwd o mount. Imagina que quieres cambiar tu contraseña,
pero el comando passwd pertenece a root y normalmente un usuario no puede ejecutar un programa del administrador. En este
caso passwd tiene el suid activado y se ve una “s” donde debería encontrarse el permiso de ejecución del propietario:

manuel@turion:~> ls -l /usr/bin/passwd!
-rwsr-xr-x 1 root shadow 77096 nov 29 2006 /usr/bin/passwd

!
Fijémonos en /bin/mount que también tiene el suid activado. Al tener el bit suid un usuario montará un sistema de ficheros,
si los permisos en /etc/fstab (que ya veremos el capítulo 8) lo permiten, usando el privilegio del administrador. Este permiso sólo
funciona con binarios y nunca sobre los directorios.

- Para activar el suid:

chmod 4755 fichero!

chmod u=srwx,g=rx,o=rx fichero!

chmod u+s fichero

- Para desactivar el suid:

chmod u-s fichero!

chmod 0755 fichero

Debemos tener en cuenta que este permiso no tiene efecto sobre los directorios, pero sería muy útil para hacer un archivo
compartido por todos los usuarios donde puedan escribir.

!3
CAPÍTULO 6. Permisos. Gestión de usuarios y grupos.

b) SGID (Set group id, establecer identificación de grupo). Este permiso es igual que el SUID sólo que en lugar de ejecutar
un fichero con los privilegios del propietario se hará con los privilegios del grupo al que pertenezca el fichero. Este bit se verá
en el bit de ejecución perteneciente al grupo. Mira el comando /usr/bin/wall.

Cuando un directorio tiene activado este permiso todos los ficheros que se creen en él pertenecerán al grupo propietario (del
directorio) sin importar cual es el grupo del usuario que crea el directorio. Este permiso es de gran utilidad cuando se trabaja con
directorios compartidos. Por ejemplo, si un usuario Pepe pertenece al grupo de Contabilidad y ha creado un directorio Dire con el bit
S de identificación de grupo activo, si otro usuario Lolo perteneciente a RecursosHumanos crea un fichero dentro de Dire, dicho
fichero pertenecerá al grupo de Contabilidad. Evidentemente para que Lolo pueda escribir tendrá que tener activo la escritura para los
“otros”.

!
- Para activar el sgid:

chmod 2755 fichero!

chmod u=rwx,g=srx,o=rx fichero!

chmod g+s fichero

!
- Para desactivar el sgid:

chmod g-s fichero!

c) Sticky Bit (bit de permanencia). Este bit se ve si está activo si en el lugar de ejecución de los “otros” aparece una “t”. El
Sticky Bit se utiliza sobre los directorios para tener una mayor seguridad sobre los ficheros contenidos en él. Cuando un
directorio tiene activado este permiso no importan los permisos que tengan los ficheros en el contenidos ya que sólo el
propietario del fichero y root podrán borrarlos. Este permiso permite que todos los usuarios con acceso a un directorio puedan
modificar el contenido de los ficheros pero que no puedan borrarlos a menos que sean su propietario.

- Para activar el sticky bit:


chmod 1755 fichero!

chmod u=rwx,g=rx,o=trx fichero!

chmod o+t fichero!

chmod +t fichero

- Para desactivar el sticky bit:

chmod o-s fichero!

chmod -s fichero!

chmod -t fichero

Los ficheros con suid y sgid activos son una fuente de peligros y hace al sistema más vulnerable a ataques internos ya que
habrá usuarios que conscientemente intentarán acceder a acciones únicamente reservadas al superusuario. Una opción podría ser
eliminar esos ficheros, pero es una decisión equivocada, lo correcto sería encontrar aquellos ficheros que pueden crear una
vulnerabilidad y quitarles el bit s de usuario y grupo con el fin de que los usuarios normales no puedan usarlo.

!
!4
CAPÍTULO 6. Permisos. Gestión de usuarios y grupos.

➢ Ejercicio 1. Rellena con los permisos el siguiente cuadro.

Permisos Permisos

700 u=rwx

650

540

2431

1654

660

1751

4771

7777

!
➢ Ejercicio 2. Busca en todo el sistema (como root) aquellos ficheros que tengan activo el bit suid o sgid. Identifica cuales de ellos
pueden crear una vulnerabilidad en el sistema.

➢ Ejercicio 3. Prueba el bit S de usuario. Desde la línea de comandos cambia tu contraseña ¿se puede? ¿a quien pertenece el
comando “/usr/bin/passwd” y qué permisos tiene? Sin cambiar de usuario intenta cambiar la contraseña de otro.Ejercicio 4.
Prueba el bit S de grupo. Como root: crea el directorio “/home/compartido”, actívale el bit de grupo, establece los permisos a
777. Como un usuario normal crea en él un fichero y un directorio. Cambia de usuario y prueba a escribir en él comparando
posteriormente los permisos, el usuario y grupo propietarios con el directorio padre. ¿Qué puede hacer el segundo usuario en ese
directorio y su contenido (crear/borrar/añadir)?

➢ Ejercicio 5. Prueba el sticky bit. Como root: crea el directorio “/home/stickybit”, actívale el sticky bit, establece los permisos a
777. Como un usuario normal crea en él un fichero y un directorio. Cambia de usuario y prueba a escribir en directorio
comparando posteriormente los permisos, el usuario y grupo propietarios con el directorio padre y también intentando manipular
lo creado por el primer usuario. ¿Qué puede hacer el segundo usuario en ese directorio y su contenido (crear/borrar/añadir).

!
6.2. Comandos para la manipulación de permisos.
!
Los únicos usuarios con derechos a cambiar los permisos de ficheros, sean cuales sean y sean quienes sea, son root y el dueño del
fichero.

Vamos a ver los comandos más usuales para el manejo de permisos y propiedad de ficheros:

− chown (change owner, cambiar propietario). Cambia el propietario de un fichero. El superusuario es el único que puede cambiar
de propietario un fichero que no le pertenece, en el resto de los casos el usuario tendrá que ser propietario del fichero.

chown usuario fichero!

!5
CAPÍTULO 6. Permisos. Gestión de usuarios y grupos.

− chgrp (change group, cambiar grupo). Igual que el anterior pero cambia el grupo al que pertenece el fichero siendo el usuario que
lo invoca root o el dueño del fichero.

chgrp grupo fichero!

− chmod (change mode, cambiar modo). Cambia los permisos de un fichero del cual, el usuario que lo invoca es el propietario o es
root.

chmod permisos fichero!

!
Hay varias formas de cambiar los permisos.

a) Empleando los números en octal.

chmod 755 mifichero!

!chmod 765 *.doc

b) Usando los acrónimos de los permisos junto con “u” para usuario, “g” para grupos y “o” para otros. Repitamos el
ejemplo anterior.

chmod u=rwx, g=rw, o=rx mifichero!

chmod u=rwx, g+rw, o=rx *.doc!

!
− umask. Cuando un usuario crea un fichero o un directorio lo hace con unos permisos por defecto que no se han especificado
explícitamente, es decir, que lo hace el sistema automáticamente. El comando umask crea una “mascara” que quita los permisos
que queremos que tenga el fichero/directorio que se va a crear.

umask valor!

Veámoslo con un ejemplo. Sabemos que queremos que los ficheros/directorios por defecto no se crean con los permisos de escritura
¿verdad? compruébalo. En ese caso la máscara será:

umask 022!

Pero ¿cómo se forma la máscara? Es fácil, si 777 significa “todos los permisos para todo el mundo” y queremos que se quite el
permiso de escritura para el “grupo” y para los “otros” tendremos que poner el comando anterior. Otro ejemplo. Supón que queremos
que el dueño tenga todos, para el grupo únicamente se le conceda el permiso de lectura, para los otros ninguno, podemos realizar la
siguiente ecuación:

777 – máscara = permisos a obtener por defecto!

777 – X = 740 que equivale a rwx r-- ---!

¿Qué vale X? 777 – 740 =037

Todos los cambios que realices en la máscara tendrán únicamente efecto durante la sesión en curso, si quieres que esa máscara
perdure tendrás que modificar el fichero de configuración local al usuario (en su directorio: .bashrc o .profile) si sólo quieres que
afecten a ese usuario, o del sistema (/etc/profile) para que los cambios afecten a todo el sistema la próxima vez que se inicie).

!6
CAPÍTULO 6. Permisos. Gestión de usuarios y grupos.

Ejercicios de permisos.

1. Ejecuta el comando: umask -S ¿Qué muestra? y con el parámetro -p.

2. Crea el directorio direct, y activa su sgid intenta escribir en él siendo otro usuario.

3. Modifica el directorio direct del ejercicio anterior cambiando los permisos de grupo permitiendo todo y luego quitando el de
ejecución. Para los dos casos intenta entrar, crear un fichero y modificar el contenido de un fichero ya existente. Para añadir un
usuario a un grupo: usermod -aG grupo-al-que-añadir usuario .

4. Crea un fichero con el comando $ touch fiche. Ahora crea un enlace blando a ese fichero y modifica los permisos que no
permitan escribir en él. ¿Qué permisos prevalecen? ¿los del origen o los del enlace? Haz la prueba.

5. Crea un directorio $ mkdir direct. Ahora crea un enlace blando a ese directorio desde el escritorio. ¿Qué permisos tiene el enlace?
Modifica los permisos del enlace para que no se pueda acceder. ¿Cómo quedan los permisos del enlace y del enlazado? ¿Qué
permisos prevalecen? ¿los del origen o los del enlace? Haz la prueba. Borra el enlace.

6. Crea dos subdirectorios y dos ficheros dentro del directorio creado en el ejercicio anterior. Usando un único comando cambia los
permisos a “sólo lectura” tanto del directorio como de todo su contenido. Usa el parámetro -c. Para ello tendrás que buscar en la
ayuda del comando.

7. Crea un nuevo fichero de texto, escribe algo dentro de él, graba y ponle el permiso suid. Logeate/entra con el comando su
usuarionuevo como otro usuario y cambia el contenido del fichero. Reflexiona.

8. Crea un directorio añádele el sgid. Dale acceso total al grupo. Logeate/entra como un nuevo usuario que no pertenezca al grupo
de referencia del usuario con el que estabas trabajando. Con el nuevo usuario intenta crear un fichero dentro del directorio o
modificar uno existente. Reflexiona.

9. Crea un directorio dentro /home que vas a llamar “compartido”. Este directorio no va a pertenecer a un usuario sino a un grupo,
por lo tanto quita los permisos para los “otros”.

10. El comando chown también permite cambiar el grupo propietario. Busca información de cómo hacerlo y aplícalo a un nuevo
fichero.

11. Activando el sticky bit para un directorio y dándole a este los permisos 1753, conseguimos que el propietario tenga control total
sobre él, que el grupo sólo pueda ver y entrar y que “los otros” puedan entrar, escribir y borrar. ¿Pero esto sucede esto también
desde el entorno gráfico? Preguntado de otro modo ¿un usuario de “los otros” puede borrar desde el entorno gráfico un fichero que
haya dejado en ese directorio?

!
6.3. Gestión de usuarios y grupos.

Como hemos dicho en la introducción del capítulo, Linux/Unix es multiusuario, es decir que se permite a más de un usuario
el uso del sistema al mismo tiempo y a la vez. “Al mismo tiempo” porque lo dos podrán estar trabajando en el mismo instante de
tiempo desde distintos terminales/ordenadores, y “a la vez” porque sus procesos pueden estar ejecutándose sin tener que interferir en
el resto de usuarios. Esta cualidad hace necesaria un buen control sobre los datos y su estructura, eso ya lo hemos visto en el punto
anterior, pero también hace necesario tener herramientas para crear y eliminar usuarios y grupos, cambiarlos, etc... En este punto
vamos a ocuparnos de ello.

!7
CAPÍTULO 6. Permisos. Gestión de usuarios y grupos.

Los ficheros de configuración.

Cuando se invoca el bash en un login de shell interactivo, o no interactivo con la opción --login, primero se lee y
ejecutan los comandos del fichero /etc/profile, le sigue $HOME/.bash_profile, $HOME/bash_login y $HOME/.profile.

Cuando un shell interactivo que no es un login es ejecutado, bash lee y ejecuta /etc/bashrc (o /etc/bash.bashrc) y
también $HOME/.bashrc.

!
- $HOME/.bash_profile

La existencia de este fichero se debe a estar seguro de la ejecución de los dos siguientes: profile y bashrc.

- profile.

Es un fichero que define variables de entorno necesarias para cada sesión. Existen dos ficheros para cada usuario:

1) /etc/profile General para todos

2) $HOME/.profile Particular para cada usuario

- bashrc.

Este fichero se ejecuta cada vez que ejecuta un comando. Hay dos.

1) /etc/bashrc Se ejecuta cada vez que un usuario ejecuta un comando del bash.

2) $HOME/.bashrc Personal a cada usuario, también se ejecuta cada vez que un usuario ejecuta un comando

Existen dos ficheros con este nombre: $HOME/.bashrc y /etc/bashrc. Ambos son scripts, es decir, ficheros de texto
con órdenes ejecutables y modificables en cualquier editor de textos. La ejecución del fichero $HOME/.bashrc sólo afecta al
usuario al que pertenece, sin embargo el que está en /etc afecta a todos. Además estos ficheros se ejecutan:

a) /etc/bashrc: se ejecutará cuando un usuario hace uso del BASH.

b) $HOME/.bashrc: se ejecutará cada vez que el usuario al que pertenece haga uso del BASH.

- login.defs.

Este fichero situado /etc/. Configura las opciones del login de los usuarios. Veamos algunos de los parámetros más
importantes (ten en cuenta que no tiene por qué está por orden) :

a) Seguridad.

Campo valor explicación

SU_WHEEL_ONLY yes Sólo los usuarios que pertenezcan al grupo “wheel” podrán hacer “su”

CONSOLE /etc/securetty Consolas desde donde puede entrar root

NOLOGINS_FILE /etc/nologin Usuarios que no podrán entrar

LOGIN_RETRIES 3 Número máximo de intentos de login con error

LOGIN_TIMEOUT 60 Tiempo máximo de espera de login

!8
CAPÍTULO 6. Permisos. Gestión de usuarios y grupos.

Campo valor explicación

PASS_ALWAYS_TRIES 5 Número máximo de intentos de cambio de contraseña si se rechaza

PASS_ALWAYS_WARN yes Aviso si las contraseñas son débiles

Número máximo de caracteres de la contraseña usada por el programa


PASS_MAX_LEN 20
crypt()
PASS_MIN_LEN 8 Longitud mínima de la contraseña

MD5_CRYPT_ENAB yes Usar, o no, md5 para encriptar las contraseñas

Asteriscos que sustituyen cada carácter al teclear una contraseña. usado


GETPASS_ASTERISKS 1 para evitar “curiosos” (sólo en algunas distribuciones, en Debian
Wheeze no está)
Número máximo de días que se podrá usar la contraseña
PASS_MAX_DAYS 99999

PASS_MIN_DAYS 0 Número mínimo de días entre cada cambio de contraseña

PASS_WARN_AGE Número de días de antelación de aviso antes de la caducidad de la


7 contraseña
UID_MIN 1000 Número de usuario mínimo

Número de usuario máximo


UID_MAX 60000

Número de grupo mínimo


GID_MIN 100

GID_MAX 60000 Número de grupo máximo

b) Logs de control de entrada al sistema.

Campo valor explicación

FAILLOG_ENAB yes Registrar logins fallidos

LOG_OK_LOGINS yes Registrar logins correctos

LASTLOG_ENAB yes Registrar último login

SYSLOG_SU_ENAB yes cambio de usuario

SYSLOG_SG_ENAB yes ejecutar como otro grupo

SULOG_FILE /var/log/sulog fichero que registra los cambios de usuario a otro

!
!
!
!
!9
CAPÍTULO 6. Permisos. Gestión de usuarios y grupos.

c) Mensajes.

Campo valor explicación

MOTD_FILE /etc/motd es el mensaje del día (message of the day)

ISSUE_FILE /etc/issue mensaje a mostrar antes de efectuar el


login

!
- adduser.conf.

Cuando añadimos un nuevo usuario el sistema lee un archivo de configuración para saber qué debe pedir y qué debe crear.
Este archivo es /etc/adduser.conf en los sistema derivados de Debian, en SUSE está en /etc/default/useradd. adduser.conf también
hace uso de variables que han sido definidas durante el proceso de arranque en el fichero /etc/login.defs. Veamos algunos de los
parámetros más importantes:

a) DSHELL=/bin/bash. Indica cual va a ser su intérprete de comandos. En este caso el más usado: bash.

b) DHOME=/home. Dice donde se deben crear los nuevos directorios de usuario.

c) GROUPHOMES=no. Establecida a “yes” cuando se crea un usuario su directorio se creará dentro de /home/nombredegrupo.
Establecido a “no”, que es como está por defecto, el directorio se creará directamente dentro de /home.

d) SKEL=/etc/skel. Cuando se crea un usuario con adduser se deben copiar una serie de estructuras de directorios y ficheros de
configuración que están aquí, en skel. Si añades el usuario mediante la herramienta de creación de usuarios del entorno gráfico lo
que se crea en el directorio de usuario no tiene porqué ser igual que lo que hay en skel.

e) USERGROUPS=yes. Esta opción indica que cuando se cree el usuario se le asigne a un nuevo grupo con su mismo nombre,
es decir, que el usuario y el grupo al que pertenece por defecto tendrán el mismo nombre. A estos grupos se les llama “grupos
privados”. No tiene mucho sentido que esta opción esté a “yes” y que GROUPHOMES también.

f) QUOTAUSER="". Establece si el usuario tendrá cuotas de disco o no. Las cuotas de disco se verán en unos capítulos más
adelante.

g) EXTRA_GROUPS=””. Indica que cada usuario además de pertenecer a los que se indiquen explícitamente pertenecerá
también desde un principio a los aquí indicados. Esta opción es importante porque simplifica mucho el crear usuarios de
escritorio que pueden pertenecer al perfil de usuarios de escritorio. Si se quiere que EXTRA_GROUPS tenga efecto SIEMPRE
además de descomentar dicha línea hay que activar ADD_EXTRA_GROUP=1. O si se quiere añadir esos grupos extra de forma
puntual habría que añadir a “adduser” la opción “--add_extra_groups”

!
- passwd, group, shadow y gshadow.

Estos ficheros situados en el directorio /etc registran los usuarios existentes en el sistema. Originalmente las contraseñas se
almacenaban encriptadas en passwd, pero esto ha cambiado para ser almacenadas en shadow. El fichero group contiene la
información necesaria sobre los grupos existentes en el sistema. La configuración de cada uno es:

a) passwd. usuario:x:user-id:group-id:nombre-completo-usuario, , ,:directorio-usuario:shell

• usuario: es login del usuario.

• x: contenía la contraseña.

!10
CAPÍTULO 6. Permisos. Gestión de usuarios y grupos.

• user-id: el número de identificación del usuario.

• group-id: número de identificación del grupo del usuario.

• nombre-completo-usuario, , ,: es el nombre completo del usuario seguido de otros datos.

• directorio-usuario: es el directorio home del usuario

• shell: intérprete de comandos usado.

Aquí abajo tenemos un ejemplo del fichero passwd:

manuel:x:1000:100:manuel:/home/manuel:/bin/bash

!
Para deshabilitar un usuario y que no pueda entrar basta con poner un asterisco (*) donde está la equis (x).

!
b) shadow. usuario : contraseña_cifrada : d1 : d2 : d3 : d4 : d5 : d6 : reservado

• usuario: es el login del usuario.

• contraseña_cifrada: es la contraseña encriptada, nunca habrá dos iguales ni siquiera repitiendo la clave.

• d1: nº de días desde el 01/01/1970 hasta último cambio de la contraseña.

• d2: nº de días que deben pasar hasta que se pueda cambiar la contraseña.

• d3: nº de días que deben pasar para que caduque la contraseña y deba ser cambiada.

• d4: nº de días de antelación con los que avisará el sistema de la caducidad de la contraseña.

• d5: nº de días con contraseña caducada antes de deshabilitar la cuenta.

• d6: nº de días desde el 01/01/1970 y el día en que se deshabilitó la cuenta.

• reservado: campo reservado por si hace falta añadir alguna otra información futura.

En el siguiente cuadro tienes un ejemplo de una línea del fichero shadow:

manuel:$1$KfNtvOJb$qFahz.f8zYyotjToffBFk.:13663:0:99999:7:-1::
!
Fíjate en que para no tener que deshabilitar la cuenta, el campo d5 vale -1.

!
Para deshabilitar un usuario y que no pueda entrar basta con poner un signo de admiración de cierre (!) al principio de la línea.

También es posible impedir la entrada de grupos, desde lugares concretos, a ciertas horas...
Ya lo veremos más adelante en el capítulo dedicado a la Seguridad y PAM.

!
!
!11
CAPÍTULO 6. Permisos. Gestión de usuarios y grupos.

c) group. nombre-grupo : x : id-grupo : usuarios.

• nombre-grupo: es el nombre del grupo.

• x: si el grupo tiene clave se podrá ver aquí, encriptada claro.

• id-grupo: es el número identificativo del grupo.

• usuarios: son los usuarios que pertenecen a ese grupo.

En el siguiente cuadro hay un ejemplo de un par de líneas de este fichero.

users:x:100:manuel!
vboxusers:!:1000:manuel

!
d) gshadow. Es similar a group pero registra contraseñas de grupo. La única diferencia es que tendrá una contraseña encriptada en
el segundo campo o el carácter “!” (admiración de cierre).

!
➢ Ejercicios.

Para los siguientes ejercicios crea dos usuarios que te permitirán realizar todas las pruebas sin que afecten a tu usuario
normal. Por ejemplo: andromeda y casiopea.

1. Modifica el fichero shadow para que un usuario con el que realizas las pruebas se vea obligado a cambiar las contraseña todos los
días. Imagina que estás administrando un sistema de alto riesgo de ataque ¿qué usuario debería cambiar la contraseña cada día?

2. Modifica el fichero shadow para que el sistema avise con 7 días de antelación de la obligatoriedad de cambiar la contraseña en el
periodo que te indique. Para probar tendrás que ir variando la fecha y entrar y salir con el usuario indicado.

3. No permitas usuarios con más de 1 día de demora en cambiar la contraseña una vez esté caducada: deshabilítalos.

4. Deshabilita dos usuarios de forma distinta y prueba en qué se diferencian los mensajes del sistema.

!
!
Administración de usuarios y grupos.

Para la administración de los usuarios y los grupos, Linux proporciona diversos comandos. Veámoslo:

− useradd (añadir usuario). Permite añadir un usuario sólo añadiendo su login y quedando, si se quiere, los demás aspectos para una
posterior configuración. Si alguno de los campos, salvo la contraseña, se quiere dejar en blanco bastará con pulsar
sucesivamente la tecla “ENTER”. useradd tiene múltiples opciones, destacaremos la posibilidad de especificar el directorio home
(-d), el directorio esqueleto a partir del cual se puede formar el del nuevo usuario (-k), la contraseña (-p), el grupo al que va a
pertenecer por defecto (-G), se puede decir en el momento de la creación cuando expirará la cuenta (-e) usando el formato de fecha
YYYY-MM-DD. Ejemplo de creación de un usuario llamada “angustias”:

useradd -d /home/angustias -e 2029-12-31 -m -k /etc/skel

!
!12
CAPÍTULO 6. Permisos. Gestión de usuarios y grupos.

Este comando/script usa el fichero de configuración /etc/adduser.conf.

Este comando está prácticamente en desuso porque para crear al completo el usuario hay que realizar a mano cosas como: la creación
de su estructura de directorios, la contraseña, etc... si no se especifican como parámetros.

− adduser (añadir usuario). Permite añadir usuarios sin más que indicarle el nombre login. Es un método más cómodo que el
anterior ya que el sistema irá pidiendo los datos necesarios para completar los campos.

adduser anonimo

− userdel (borrar usuario). Borra un usuario. Se puede borrar todo rastro de directorio con la opción (-r), incluso se puede forzar el
borrado en el caso de que el sistema no permita la eliminación por la existencia de ficheros que no son de propiedad del usuario (-
f). Este comando/script usa el fichero /etc/login.defs.

− usermod (modificación de una cuenta de usuario). Se pueden variar las características de las cuentas de los usuarios. Cambiar su
home (-d), volver la cuenta inactiva un número determinado de días (-f), cambiar el grupo (-G), cambiar la fecha de expiración (-
e) en formato YYYY-MM-DD, cambiar el propio login del usuario (-l), bloquear (-L) o desbloquear (-U) una cuenta, o cambiar la
contraseña (-p) entre otras cosas.

− passwd (cambia la contraseña). Este comando cambia la contraseña de usuarios y grupos. Sólo root puede cambiar la contraseña
de todos los usuarios, y por supuesto, cada usuario puede cambiar la suya cuando quiera y según las condiciones en el fichero /etc/
passwd en la línea correspondiente. No se deben poner contraseñas fáciles, lo mejor es la combinación de números y letras
evitando palabras que puedan encontrarse en el diccionario o que pertenezcan a tu círculo reducido: fechas destacadas personales/
familiares, nombres de conocidos o familiares, el pin del móvil, etc... Un ejemplo podría ser: Ecnlsnald3TeFde2 = “Esta
contraseña no la sacas ni a la de 3 Trabajo en Fuengirola desde el 2005”. Esta contraseña está formada por las primeras letras de
cada palabra pero para ponerlo más difícil podrías escoger las segundas o las últimas.

− chpasswd (cambiar contraseña). Permite cambiar una serie de contraseñas leyendo de un archivo el par: usuario y contraseña.
Muy útil cuando hay que cambiar la contraseña de múltiples usuarios. Sólo root puede hacerlo. El fichero debe estar en modo
texto y con el formato: usuario:contraseña.

− groupadd (añadir grupo). Este comando nos permite añadir grupos nuevos al sistema. Existen algunas opciones que nos pueden
ayudar a administrar los grupos como, por ejemplo, añadir una contraseña (-p).

− groupmod (modificar un grupo). En OPENSUSE: con el uso de este comando es posible añadir un usuario a un grupo (-A) y
eliminarlo (-R), cambiar la contraseña del grupo (-p) y crear un directorio donde por defecto se introducirán los nuevos usuarios (-
P).

− groupdel (permite eliminar un grupo). Elimina un grupo del sistema siempre y cuando no tenga usuarios que tengan a dicho grupo
como primario.

− gpasswd (contraseña de grupo). De poca utilidad. Cada grupo puede tener administradores, miembros y contraseñas. Con
gpasswd podemos añadir administrador/es aun grupo (-A) y miembro/s (-M), eliminarlos (-d) y también la contraseña (-r). Sólo el
administrador puede cambiar la contraseña de un grupo. Un administrador de grupos es útil para delegar funciones de gestión de
grupos a usuarios de confianza. Dicho administrador podrá añadir y eliminar usuarios al grupo.

− newgrp (nuevo grupo). Permite a un usuario cambiar a otro grupo siempre y cuando no tenga contraseña.

− groups (grupos). Nos indica a qué grupos pertenecemos.

− sg (ejecutar como otro grupo). Permite ejecutar un comando como si fuese otro grupo.

sg grupo -c comando

!13
CAPÍTULO 6. Permisos. Gestión de usuarios y grupos.

!
Otros comandos útiles para el manejo de usuarios.
!
− id (identificación). Muestra información sobre el usuario que lo ejecuta como el uid, gid, etc…

− who (¿quien está ahí?). Te muestra los usuarios que están conectados al sistema.

− w (¿qué están haciendo?). Te muestra los usuarios que están conectados al sistema y lo que están haciendo, es decir, los procesos
que están ejecutando.

!
Ejercicios.
!
1. ¿Puede un usuario pertenecer a más de un grupo? Razona tu respuesta.

2. En el sistema que estás usando ¿a que grupos se asignan los usuarios por defecto cuando se crean?

3. Sin usar adduser, useradd o groupadd vamos a añadir “a mano” nuevos usuarios y grupos manipulando los ficheros adecuados.
Añade un usuario “hawking” al grupo “grupohawking”, ambos no existentes. Pista: recuerda que la existencia de un usuario debe
reflejarse en los ficheros passwd, shadow, group y gshadow como mínimo; que los grupos y los usuarios que pertenecen a ellos
también deben existir en los ficheros group y gshadow (en derivados de Debian); además, cada usuario debe tener un directorio
personal cuyo contenido debe ser el de /etc/skel (ficheros y directorios, también los ocultos) que debe pertenecerle a él y a su
grupo. Si el directorio skel no contiene nada (según qué versión usemos) crea los siguientes directorios dentro de él: Escritorio,
Documentos, Imagenes (sin la tilde), Descargas y Compartido.

4. Crea tres nuevos usuarios: uno, dos y tres. Utiliza los comandos que has aprendido: useradd o adduser.

5. Crea tres nuevos grupos: g1, g2 y g3. Usa groupadd.

6. Añade el usuario uno al grupo g1, el dos a g2 y el tres a g3. Mira el fichero correspondiente y elimina los de los grupos que tienen
en común de forma que cada uno sólo pertenezca al que le acabamos de añadir. Cambia el grupo propietario de los directorios
personales de los usuarios uno, dos y tres a los grupos g1, g2 y g3 respectivamente. Así, el directorio /home/uno tendrá como
usuario propietario: uno; y el grupo g1 como grupo propietario.

7. Añade el usuario uno al grupo g2 y g3, el dos al g3. Está claro que el usuario tres no podrá acceder al directorio de uno ¿o sí?
Comprueba si tres puede acceder al directorio de uno y en tal caso impídelo.

8. Crea los siguientes grupos: informatica, lengua, matematicas, idiomas y direccion (sin tildes). Modifica ahora el fichero
adduser.conf para que cada usuario que se añada a partir de ahora tenga su directorio home dentro de cada directorio del grupo
correspondiente. Quizás tengas que crear el directorio del grupo tú mismo antes de añadir los usuarios. Crea ahora dos usuarios
para cada grupo de los anteriores. Haz las modificaciones oportunas para permitir que los usuarios del grupo de direccion puedan
entrar en los demás, pero a su vez restringiendo al resto de los usuarios pertenecientes a los otros grupos el acceso a direccion, ni
siquiera se puede permitir un cambio momentáneo de grupo con newgrp.

9. Crea para cada uno de los grupos creados en el ejercicio anterior un administrador de entre los usuarios que pertenecen al grupo.
Para crear un usuario con un grupo que ya existe usa el comando:

adduser --ingroup group usuario

Para añadir un usuario a un grupo también puedes usar:

!14
CAPÍTULO 6. Permisos. Gestión de usuarios y grupos.

usermod -G gruponuevo usuario

adduser usuario gruponuevo

10. Busca información en Internet sobre la utilidad de tener un administrador de grupo.

11. Abre varios terminales, al menos tres, y entra en cada uno con un usuario diferente. Cada uno de ellos abrirá un fichero diferente
dentro de tu pendrive o cdrom. Usa los comandos who y w para ver quien está conectado. Usa también los comandos fuser para
ver qué usuarios están usando un sistema de ficheros montado, por ejemplo tu pendrive. Emplea el comando lsof para que muestre
que ficheros están abierto en un sistema de ficheros montado.

12. Modifica los usuarios creados en el ejercicio 8 para deshabilitar su cuenta el día 1 del mes próximo. Cambia la fecha del sistema y
comprueba si puedes entrar.

13. Borra los usuarios del ejercicio 8.

14. Elimina los grupos del ejercicio 8.

!
6.4. ACL (Access Control List).
!
En los sistemas Unix, y Linux es uno de ellos, los permisos se basan en el modelo conocido como UGO: Usuarios/Users,
Grupo/Group y Otros/Others. Siempre se podrá calificar a alguien dentro de estas tres categorías, pero eso no quiere decir que esta
forma sea inmejorable. Supongamos que tenemos alguien que pertenece al grupo de los “Otros” y quieres darle la posibilidad de ac-
ceder a ficheros o/y directorios ¿cómo puedo hacerlo? porque con el modelo UGO no es posible. Para ello nacen las ACL (Access
Control List / Listas de Control de Acceso). Con las ACLs se puede especificar un grupo o usuario, o conjunto de estos, qué puede
hacer sobre un determinado fichero o directorio, y su contenido, mediante el uso de una lista de permisos denominada ACEs (Access
Control Entrance / Entradas de Control de Acceso). Este sistema se usa en distintos sistemas, no solo en Linux, por ejemplo en Win-
dows y su NTFS o Solaris.

Para usar ACLs necesitaremos dar algunos pasos previos:

a) El paquete fileutils. Normalmente este paquete suele venir instalado en todas las distribuciones, pero quizás quieras verificarlo.

b) El fichero /etc/fstab contiene todos los sistemas de ficheros que están disponibles para tu sistema. Deberás añadir la opción acl
para usarlo o noacl para impedir su uso. En algunos sistemas al incluir la opción acl al punto de montaje, el sistema lo cambia
por user_xattr en el fichero /etc/mtab. Una entrada del fichero /etc/fstab podría quedar tal que así:

/dev/sda2! /home!ext4! defaults,acl! 0! 0!

Los sistemas de ficheros Ext2/Ext3 y XFS imponen un máximo de 32 ACL y 25 respectivamente, y ReiserFS y JFS de 8192.
Esto se hace para impedir que redunde en una caída de rendimiento del sistema por un exceso de comprobaciones simultáneas.

!
Ejercicios.
Busca información sobre:
1. ¿A cuanto asciende el máximo de entradas en el sistema de ficheros Ext4?
2. ¿Existe algún fichero donde se almacenen las ACLs?

!15
CAPÍTULO 6. Permisos. Gestión de usuarios y grupos.

3. Si /home está separado de la raíz y está montado ¿cómo puedo activar las ACLs sin tener que desmontar o reiniciar?
!
Conceptos básicos.
!
Cuando un nuevo objeto se crea (fichero, directorio, fifo…) por defecto hay que asociarle unas entradas que definan quién
puede acceder y qué permisos tiene, es decir, qué se puede hacer en él.

Una entrada de ACL se denomina ACE y tiene el siguiente formato:

tipo:cualificador:permisos

a) tipo puede ser usuario (u), grupo (g), otros (o) o una máscara (m).

b) cualificador puede ser un nombre de usuario, un nombre de grupo o estar vacío.

c) permisos son los permisos que tendrá el usuario, el grupo o la máscara y son de tipo rwx.

!
Antes de comenzar debemos aprender unos conceptos previos que nos serán de utilidad al consultar la ayuda del sistema
sobre ACL: man acl.

ACL_USER_OBJ usuario propietario user::rwx

ACL_GROUP_OBJ (*) grupo propietario grupo::rwx

ACL_USR (*) otros usuarios definidos user:usuario:rwx

ACL_GROUP (*) otros grupos definidos grupo:nombregrupo:rwx

ACL_OTHER otros no definidos other::rwx

ACL_MASK máximos permisos aplicables a (*) mask::rwx

Obligatoriamente ha de existir una entrada de ACL_USER_OBJ, ACL_GROUP_OBJ y otra para ACL_OTHER.

Pueden existir cero o más entradas de ACL_USER y ACL_GROUP, ya que podemos dar permisos a usuarios y grupos espe-
cíficos indistintamente.

ACL_MASK sólo existirá OBLIGATORIAMENTE cuando exista ACL_USER o ACL_GROUP, en otro caso es opcional, es
decir, que se creará una máscara para cuando un usuario que no es el propietario, o un grupo que no es el propietario tengan permisos,
así se sabrá que permiso aplicar que siempre suele ser el más restrictivo.

Cuando creamos un fichero o directorio sobre un directorio que al que no se le ha asignado una ACL explícitamente, se to-
man los permisos de umask, que por defecto suele ser 0022:

a) los direcctorios se crean con permisos: rwx r-x- r-x

b) los ficheros se crean con permisos: rw- r - - r - -

Existen las ACL_DEFAULT que se aplican por defecto a un directorio y al par tipos:cualificadores que nosotros elijamos
dentro del directorio en el que estamos. Las veremos más adelante con unos ejemplos que harán que se entiendan mejor.

Si está establecida la entrada ACL_MASK, en la salida del comando ls -l los permisos del grupo propietario mostrarán el
contenido de dicha entrada.

-rwx r-x r- -

!16
CAPÍTULO 6. Permisos. Gestión de usuarios y grupos.

-rwx —> ACL_USER_OBJ


r-x —> ACL_MASK o ACL_GROUP_OBJ
r- - —> ACL_OTHER
Si en la primera columna de la salida “ls -l” aparece un signo “+”, esto significará que existe una ACL extendida, es decir
que además de la del usuario y grupo propietario existe alguna otra más.

usuario@linux:~$ ls -dl MiDirectorio !


drwxrwx---+ 2 usuario informatica 4096 dic 08 22:47 MiDirectorio
!
Comprobación de acceso a un objeto.
!
Para saber si se tienen permisos de acceso sobre un fichero/directorio que tiene ACLs se lleva a cabo el proceso descrito en el
siguiente diagrama de flujo:

!17
CAPÍTULO 6. Permisos. Gestión de usuarios y grupos.

Mostrar las ACL.

Para mostrar una ACL de un directorio, supongamos que estamos en /home/usuario/Documentos y queremos ver sus ACLs,
se usa el comando getfacl (recuerda umask explicado anteriormente). Crearemos también dos ficheros para ver cuales son sus entra-
das (ACEs) dentro él.

usuario@linux:~/Documentos$ getfacl .!
# file: .!
# owner: usuario!
# group: informatica!
user::rwx!
group::r-x!
other::!
!
usuario@linux:~/Documentos$ touch datos.txt notas.txt!
usuario@linux:~/Documentos$ ls -l *.txt!
-rw-r--r-- 1 usuario informatica 0 2014-12-07 11:56 datos.txt!
-rw-r--r-- 1 usuario informatica 0 2014-12-07 11:56 notas.txt!
!
usuario@linux:~/Documentos$ getfacl -l archivo1.txt!
# file: archivo1!
# owner: usuario!
# group: informatica!
user::rw-!
group::r--!
other::r-- !
!
Opciones:

a) -a muestra el fichero de la ACL.

b) -d muestra la lista por defecto de la ACL.

c) -R muestra recursivamente las ACLs de los ficheros y directorios.

d) -L sigue los enlaces simbólicos a los directorios: Logical.

e) -P no sigue los enlaces simbólicos, sólo los físicos: Physical.

f) -t usa un tabulador alternativo para mostrar la separación entre cada una de las columnas.

g) -n usa los números de los usuarios y los grupos en vez de sus nombres.

!
Establecer ACL.
!
! Para establecer o cambiar una ACL se usa el comando setfacl.

usuario@linux:~/Documentos# setfacl -b -k -R .

!
!18
CAPÍTULO 6. Permisos. Gestión de usuarios y grupos.

a) -b borrará la ACL que ya exista sobre el directorio.

b) -k borrará la ACL que tenga el directorio por defecto, si la tuviese.

c) -R aplica los cambios a todo lo que tenga el directorio dentro, tanto ficheros como directorios.

d) -m modifica los permisos agregando o modificando los ya existentes.

e) -M modifica los permisos leyéndolos desde un fichero.

f) -x borra las entradas existentes.

g) -X borra las entradas incluidas desde un fichero.

h) -d asigna permisos por defecto.

i) - -restore=fichero carga desde un fichero una lista de ACEs, que podrían haber sido creadas con getfacl -R. Todos los
permisos del árbol de subdirectorios completo serán restaurados.

j) - -mask vuelve a “recalcular” los permisos efectos de la máscara.

k) -L sigue los enlaces a los directorios: camino Lógico.

l) -P no sigue los enlaces a los directorios: camino Físico.

!
NOTA ACLARATORIA: la primera vez que se usan las ACLs no hace falta borrar nada ya que no existen entradas (ACE), en
el ejemplo se pone para ver cómo se hace.

usuario@linux:~$ setfacl -m u:pepe:rwx datos.txt

!!
Ten en cuenta el orden en el que se han escrito los parámetros “-d” y “-m”, y que “-m” debe ir acompañado de una entrada de
la forma: tipo:cualificador:permiso. Fíjate:

usuario@linux:~$ setfacl -d -m g:informatica:rwx .

Existe otro comando usado para modificar una ACL ya existente: chacl.

usuario@linux:~$ chacl u::rwx,g::r- -,o::---,u:jefe:rw-,g:informatica:rw-,m::rw- !


fichero
! !

En el siguiente ejemplo tomamos una ACL de un fichero y se la aplicamos a otro:

usuario@linux:~$ getfacl datos.txt | setfacl --setfacl=- datos-2.txt

!
De esta forma nos ahorramos de copiar las ACLs de un fichero para implantarlas en otro.

!
!19
CAPÍTULO 6. Permisos. Gestión de usuarios y grupos.

ACLs por defecto.


!
Las ACLs por defecto nos permiten indicar cuales son las que queremos que se apliquen automáticamente a los nuevos obje-
tos (ficheros y directorios) creados dentro del directorio actual. No se heredan, sino que se copian desde el directorio padre.

Los permisos se copian/transfieren a los archivos y subdirectorios de dos formas:

i. El sistema copia por defecto del directorio padre tanto la ACL de acceso como la default.

ii. El sistema copia la ACL del padre al archivo creado y pasándole tanto la de acceso como la default.

Pero ¿y si el directorio padre no dispone de una ACL default? en ese caso se usan los permisos definidos por umask y se crea
con ellos el nuevo objeto.

La sintaxis a usar es la misma que al establecer una ACL normal, pero en este caso habrá que usar la opción -d seguida de
tipo:cualificador:permisos.!

usuario@linux:~$ mkdir Informes!


usuario@linux:~$ getfacl Informes!
# file: Informes!
# owner: usuario !
# group: informatica !
user::rwx !
group::r-x !
other::---!
usuario@linux:~$ setfacl -m user:jefe:rwx,group:contables:rwx Informes!
usuario@linux:~$ setfacl -d -m group:contables:r-x Informes!
(hemos usado -d para establecer las modificaciones -m en la ACL del grupo “contables” y para modificar la ACL default, y
obtener el siguiente resultado:)
usuario@linux:~$ getfacl Informes !
# file: Informes !
# owner: usuario !
# group: informatica !
user::rwx !
user:jefe:rwx !
group::r-x !
group:contables:rwx !
mask::rwx !
other::--- !
default:user::rwx !
default:group::r-x !
default:group:contables:r-x !
default:mask::r-x !
default:other::---

!
La ACL por defecto son aquellas líneas que comienzan por “default”.

Aunque se ejecutó el comando

!20
CAPÍTULO 6. Permisos. Gestión de usuarios y grupos.

$ setfacl -d -m group:contables:r-x Informes!


sobre el grupo “contables” , al usar la opción “-d” ha copiado automáticamente las entradas restantes de la ACL para crear
una por defecto válida.
Las ACLs default sólo se usan para crear nuevos elementos que “heredan” permisos de la ACL por defecto de su directorio
padre.
La entrada mask define los permisos máximos para todas las entradas de la clase “group”.
Si se crea un nuevo subdirectorio, éste tomará la ACL por defecto de su padre:

usuario@linux:~/Informes$ mkdir Inf-nuevo!


usuario@linux:~/Informes$ getfacl Inf-nuevo!
# file: Inf-nuevo!
# owner: usuario!
# group: informatica!
user::rwx!
user:usuario:rwx!
group::r-x!
group:contables:rwx!
mask::rwx!
other::---!
default:user::rwx !
default:group::r-x !
default:group:contables:r-x !
default:mask::r-x !
default:other::---

!
!
Ejercicios ACL
!
1. Tenemos un directorio llamado “Datos” en /home. Deseamos compartirlo con todos los usuarios del sistema, de tal manera que
los miembros del grupo profesores tengan control total incluyendo todos los directorios que puedan crearse en él, y los
pertenecientes al grupo alumnos sólo puedan acceder y leer de él incluyendo los subdirectorios que puedan existir.
!
2. Dentro del directorio “Datos” se crearán dos directorios: 1ASIR y 2ASIR. Sólo los alumnos que estén en un curso (empecemos
por 1ASIR) podrán acceder. ¿Se puede hacer sin ACLs?
!
3. Dentro de “Datos” tendremos dos directorios nuevos: Cafetería y Apuntes. Dentro de Cafetería sólo los alumnos pertenecientes
al grupo Delegados podrán crear nuevos directorios y ficheros para tratar temas (Tema1, Tema2…), y los alumnos podrán escribir
dentro de dichos directorios monográficos de cada Tema. En el directorio Apuntes los alumnos podrán acceder libremente, pero
no podrán ni escribir ni borrar, los profesores tendrán acceso total.
!
4. Cualquier miembro del grupo Inspectores adjudicados al centro tendrá acceso total en modo de solo lectura para que pueda
comprobar que estamos cumpliendo con el programa.
!
5. Dentro del directorio Datos, los inspectores tendrán un directorio denominado Comunicaciones al que los demás usuarios podrán
acceder en modo de sólo lectura.
!
6. El usuario inspector Gadget, inspector de nuestro centro, ha sido expedientado por las altas esferas educativas y hay que

!21
CAPÍTULO 6. Permisos. Gestión de usuarios y grupos.

denegarle cualquier acceso a los ficheros, pero no se puede borrar su cuenta a la espera de que su expediente se resuelva.
Mientras tanto cualquier inspector podrá entrar y mirar lo que le interese.
!
7. El nuevo inspector asignado al centro se llama Clusseau y tendrá acceso en forma de sólo lectura a todo el directorio Datos.
!
8. El departamento de Matemáticas ha pedido que se le cree un directorio para ellos a semejanza al de informática. A petición del
inspector la estructura será la misma para facilitar su uso. Los directorios serán 1BACH y 2BACH.
!

!22

Vous aimerez peut-être aussi