educación, informática y demás

GNU/Linux bash, Shell scripts, Sistemas operativos

Bash shell scripts, ejemplos

Continuamos con otro conjunto de ejemplos sobre bash shell scripts. El objetivo es comenzar por un script que solucione el problema y después perfeccionarlo para que lo haga de forma óptima, comprobando errores y requisitos previos.

showProcess.sh

Crea un script llamado showProcess.sh que recibirá por parámetro el nombre de un comando o aplicación que se está ejecutando en el sistema.

El script, haciendo uso del comando adecuado, buscará entre los procesos en ejecución en el sistema actualmente aquellos que estén ejecutando dicho comando y mostrará información de dichos procesos en pantalla.

Una mejora sería mostrar un mensaje especial si no hay ningún proceso en ejecución con el nombre pasado por parámetro.

Se debería comprobar que el usuario pasa un parámetro. Si no se pasa parámetro, se debería mostrar un mensaje de error y terminar la ejecución del script.

userSumarize.sh

Crea un script llamado userSumarize.sh que recibirá por parámetro el nombre de un usuario y mostrará información acerca de dicho usuario en pantalla. Este script debería ser ejecutado por root.

Primero se comprobará si el usuario existe en el sistema. Si no existe en el sistema se deberá mostrar un mensaje indicándolo y terminar la ejecución del script pero devolviendo un código de salida normal.

Si el usuario existe en el sistema, se pide que se muestre información acerca de la cuenta de usuario y de su directorio personal.

Se deberá mostrar la siguiente información, cada una en una línea distinta: el nombre de la cuenta de usuario, su UID, el GID de su grupo principal, el nombre de su grupo principal, la ruta de su directorio personal y el shell que utilizará.

Después se mostrará el resumen de ocupación en disco de su directorio personal en un formato comprensible por humanos.

Comprobaciones. Si el usuario no pasa por parámetro el nombre de un usuario deberíamos mostrar un mensaje de error adecuado y salir.

Si el usuario que ejecuta el script no es root deberíamos mostrar un mensaje de error adecuado y salir.

addSharedUser.sh

Crea un script llamado addSharedUser.sh que se encargará de añadir a un usuario un directorio compartido en el sistema. Recibirá por parámetro el nombre del usuario que se configurará para que tenga un recurso compartido. Este script deberá ser ejecutado por root.

El script creará un directorio con el nombre del usuario en el directorio /shared. Dentro de dicho directorio deberá crear los siguientes directorios: public, private y uploads.

Si no existe el grupo shared en el sistema, lo crea. Para comprobar si existe un grupo se puede ejecutar el comando que proporciona información sobre un grupo.

Deberá configurar propietario, grupo y permisos de dichos directorios para que cumplan los siguientes requisitos.

  1. public. Tan solo el usuario podrá realizar operaciones de lectura y escritura en dicho directorio. El resto de usuarios del sistema tan solo podrán acceder para realizar operaciones de lectura.
  2. private. Tan solo el usuario podrá entrar en dicho directorio para realizar cualquier tipo de operación. El resto de usuarios del sistema no podrá realizar ninguna acción en dicho directorio.
  3. uploads. Tan solo el usuario y el grupo shared podrán acceder a dicho directorio para realizar cualquier tipo de operación, tanto de lectura como de escritura. El resto de usuarios del sistema no podrán realizar ninguna acción.

Una vez creados y configurados los directorios, se debe crear un enlace simbólico en el directorio personal del usuario. Primero necesitamos conocer el directorio personal del usuario, cuya ruta está almacenada con la información del usuario en el fichero de cuentas de usuario del sistema. Una vez con la ruta del directorio personal del usuario, crearemos el enlace simbólico con el comando ln y la opción -s. El nombre del enlace simbólico estará dentro del directorio personal del usuario, su nombre será shared y apuntará al directorio compartido del usuario.

Dejar una respuesta