educación, informática y demás

24.13 - Repaso general

Revisión 01.02

En esta serie de scripts vamos a revisar distintas tareas de administración que pueden automatizarse sino por completo si en gran parte para facilitar la vida del administrador.

Enunciado

Nuestro sistema se encarga de proporcionar recursos compartidos a través de FTP y SMB/CIFS en nuestra organización. Aunque estamos pensando en utilizar un servicio de directorio para centralizar las cuentas de usuario y grupos, actualmente los usuarios y grupos son locales.

Toda la parte de configuración de servicios FTP y SMB/CIFS está realizada de forma que los directorios públicos de ambos servicios son /srv/ftp (a través de Samba el recurso compartido se llama userdata y estará almacenado en la ruta /srv/ftp/userdata)

Queremos automatizar la posibilidad de que un usuario del sistema tenga un directorio compartido en estos servicios con acceso solo para él. Para ello, nos vamos a basar en la configuración de permisos del sistema de ficheros.

De esta forma, los servicios FTP y Samba permitirán a un usuario del sistema acceder para realizar operaciones de lectura y escritura en el directorio /srv/ftp y /srv/ftp/userdata respectivamente. Será la configuración de permisos que utilicemos dentro de estos directorios los que determinen qué operaciones podrá realizar un usuario realmente.

Configuración previa

Instala los paquetes vsftpd y samba en tu sistema para tener soporte para ambos servicios.

Configura el servicio ftp para que permita accesos a usuarios del sistema con operaciones de lectura y escritura.

Configura el servicio SMB/CIFS para que comparta el directorio /srv/ftp/userdata de forma que cualquier usuario del sistema pueda acceder para realizar operaciones de lectura y escritura en dicho directorio. No permitas acceso a invitados.

Crea el directorio /srv/ftp/userdata y configúralo para que solo root pueda realizar operaciones de lectura y escritura. El resto de usuarios del sistema tan solo podrá acceder para realizar operaciones de lectura.

Responde a la siguientes preguntas:

  • ¿Que podrá hacer un usuario del sistema dentro del directorio /srv/ftp/userdata?
  • ¿Que podrá hacer un usuario del sistema dentro del directorio /srv/ftp? Analiza los permisos de dicho directorio

Script newSharedResource.sh

Ahora que tenemos preparada la base para el funcionamiento de estos recursos compartidos vamos a crear un script que nos facilite crear un nuevo recurso compartido en esta infraestructura.

El script recibiría los nombres de las cuentas de usuario por parámetro en una lista variable de parámetros. Si no se pasa parámetro alguno se mostrará un mensaje de error y se proporcionará información de sintaxis de la herramienta.

Deberás controlar situaciones de error como que el usuario que ejecuta el script no sea administrador.

Ahora comprobamos que todos los nombres de usuario proporcionados tienen cuenta de usuario en el sistema. Si alguno de los nombres pasados por parámetro no tiene cuenta de usuario en el sistema, mostramos un mensaje de error advirtiéndolo y terminamos la ejecución del script.

Una vez llegados a este punto, realizamos la acción del script: crear recursos compartidos para los usuarios pasados por parámetro.

Para cada usuario proporcionado por parámetro, creará un directorio con el nombre del usuario en el directorio /srv/ftp/userdata. Antes de crearlo, comprobamos si existe el directorio. Si el directorio existe, mostramos un mensaje advirtiendo de que ya existe el directorio, sino creamos el directorio.

Una vez con el directorio creado, configuramos el directorio para que el único usuario que pueda acceder a dicho directorio para realizar operaciones de lectura y escritura sea el propio usuario.

Además, crearemos en el directorio personal del usuario un enlace simbólico llamado userdata que apuntará al directorio compartido del usuario que acabamos de crear en /srv/fto/userdata. Si este enlace simbólico ya existe, mostraremos un mensaje advirtiendo que este enlace simbólico ya existe.

Por último mostramos un mensaje advirtiendo que el directorio ha sido creado y mostrando información de permisos, propietario y grupo de dicho directorio.

Dejar una respuesta