Vamos a ampliar el script creaUsuarios.sh que hemos creado en el caso práctico anterior creaUsuarios.sh. Ahora vamos, para cada usuario de la lista vamos a comprobar si existe su directorio de trabajo de la empresa. Este directorio estará dentro de su directorio personal con el nombre educatica.
Si el directorio educatica no existe, lo creamos y configuramos los permisos de dicho directorio para que el propietario sea el usuario y el grupo sea educatica.
Ahora cambiamos los permisos para que tanto el usuario como el grupo puedan acceder al directorio para realizar cualquier operación, pero el resto de usuarios no pueda hacer nada.
Ayuda
Tendemos que usar los siguientes comandos:
- test, para comprobar si el directorio no existe. Si no sabes la opción consulta la página de manual.
- mkdir. Para crear el directorio
- chmod. Para cambiar los permisos
- chown. Para cambiar propietario y grupo
Si te fijas, al final los comandos que hay que utilizar los conocemos de sobra.
Solución propuesta
«Para cada usuario de la empresa vamos a comprobar si su directorio de trabajo de la empresa existe…»
Con esa frase nos indican que tenemos que realizar esa comprobación para cada usuario, es decir, dentro del bucle for.
Ahí tenemos que realizar las comprobaciones y acciones que nos piden.
«Si el directorio de trabajo del usuario no existe.. » Lo primero que deberíamos saber es cuál es la ruta directorio de trabajo del usuario. Es un directorio cuyo nombre es educatica dentro del directorio personal del usuario concreto. Tenemos en la variable homeDir la ruta del directorio personal del usuario, así que nos es fácil crear una nueva variable, workingDir, que contenga la ruta del directorio de trabajo del usuario en la empresa.
Este directorio cambiará para cada usuario y se adaptará a la ruta del directorio personal de cada usuario.
El siguiente paso será comprobar si no existe el directorio de trabajo para el usuario. Lo vamos a hacer con refinamientos sucesivos, es decir, primero comprobaremos que no existe y cuando sepamos que esta parte del programa funciona, creamos el cuerpo del if que se encarga de crear el directorio y configurar propietario, grupo y permisos.
Lo ejecutamos y a ver que pasa.
Ahora que sabemos que funciona la comprobación, debemos crear el cuerpo del if que se encargue de realizar las operaciones solicitadas si no existe el directorio.
Damos por supuesto que existe el grupo educatica. Podríamos comprobarlo, pero en el enunciado no nos dicen nada al respecto. Si quisiéramos comprobarlo, habría que hacerlo fuera del bucle for para evitar comprobarlo varias veces.
El script quedaría así
Hmmm… ¿se podrían haber usado funciones para organizar un poco el código?. Si.
Dejar una respuesta