lunes, 13 de marzo de 2017

Resumiendo

Hemos comenzado este capítulo con una pregunta. ¿Cómo podríamos hacer que nuestro script sys_info_page detecte si el usuario tiene permisos para leer todos los directorios home? Con nuestro conocimiento de if, podemos resolver el problema añadiendo este código a la función report_home_space:

report_home_space () {
     if [[ $(id -u) -eq 0 ]]; then
          cat <<- _EOF_
               <H2>Home Space Utilization (All Users)</H2>
               <PRE>$(du -sh /home/*)</PRE>
               _EOF_
     else
          cat <<- _EOF_
               <H2>Home Space Utilization ($USER)</H2>
               <PRE>$(du -sh $HOME)</PRE>
          _EOF_
     fi
     return
}

Evaluamos la salida del comando id. Con la opción -u, id muestra el ID numérico del usuario efectivo. El superusuario siempre es cero y cualquier otro usuario es un número mayor de cero. Sabiendo esto, podemos construir dos documentos-aquí diferentes, uno aprovechando los privilegios del superusuario, y el otro, restringido al directorio home del usuario.

Vamos a tomarnos un descanso del programa sys_info_page, pero no te preocupes. Volverá. Mientras, veremos algunos temas que necesitaremos cuando retomemos nuestro trabajo.

No hay comentarios:

Publicar un comentario