Borrar ficheros de /etc/skel y directorios home mediante puppet | Algo de Linux

martes, 16 de junio de 2015

Borrar ficheros de /etc/skel y directorios home mediante puppet

En ocasiones, necesitamos borrar un fichero del directorio /etc/skel para que no se añada cuando se cree un nuevo usuario, pero, al mismo tiempo, queremos que ese mismo fichero se borre de los directorios home de los usuarios.

Por ejemplo, supongamos que tengo un lanzador "laptopuserconfig.desktop" que permite lanzar una aplicación de configuración cuando el usuario inicia sesión por primera vez y quiero que se deje de ejecutar ese script de configuración. Lo que tendré que hacer será borrar el lanzador laptopuserconfig.desktop del directorio /etc/skel/.config/autostart/ y de los directorios home de cada usuario que exista en el sistema. 

El borrado del fichero en /etc/skel es sencillo:
file { "/etc/skel/.config/autostart/laptopuserconfig.desktop":
      ensure => absent,
}
Lo más complicado de hacer con puppet, sería borrar el fichero de los directorios home de los usuarios puesto que no sabemos qué usuarios existen en /home. No obstante, si lo pensamos bien, no es tan difícil si recurrimos al comando find y relacionamos bien los recursos file y exec:
file { "/etc/skel/.config/autostart/laptopuserconfig.desktop":
      ensure => absent,
      notify => Exec["remove-laptopuserconfig-homes"]

}

exec { "remove-laptopuserconfig-homes":
        command => "/usr/bin/find /home/ -name 'laptopuserconfig.desktop' -exec rm {} \;",
        onlyif => "test -f /etc/skel/.config/autostart/laptopuserconfig.desktop"
}
Publicado por primera vez en http://enavas.blogspot.com.es

No hay comentarios: