Linux: Restaurar permisos de un paquete

En ocasiones nos puede ocurrir que utilizando los comandos chmod o chown, configuremos permisos y propietarios equivocados sobre directorios y ficheros.

Si los directorios y ficheros afectados por el cambio corresponden a un servicio, puede que el servicio deje de funcionar de forma correcta.

Si disponemos de una distribución basada en paquetes RPM (Red Hat Package Manager), como por ejemplo: RedHat, CentOS, Fedora, etc.., podemos reestablecer los permisos y propietario de un paquete de forma automática.
 

Linux: Restaurar permisos y propietario de los ficheros de un paquete RPM de forma manual:


El procedimiento manual consiste en listar en formato detallado los ficheros del interior del paquete para luego establecer los permisos y propietario.

En este caso, utilizaremos una distribución basada en paquetes RPM.

Veamos un ejemplo paso a paso:

1) Listamos todos los paquetes instalados que se llamen php:

Utilizamos el modificador -q (query) y el -a, (all).

[root@SYSADMIT1 ~]# rpm -qa php
php-5.3.3-40.el6_6.x86_64


2) Obtenemos la lista de ficheros de los paquetes:

Utilizamos el modificador -q (query) y el -l, (list).

[root@SYSADMIT1 ~]# rpm -ql php-5.3.3-40.el6_6.x86_64
/etc/httpd/conf.d/php.conf
/usr/lib64/httpd/modules/libphp5.so
/var/lib/php/session
/var/www/icons/php.gif


3) Obtenemos la lista de ficheros de los paquetes, en formato detallado.

Utilizamos el modificador -q (query), el -l, (list) y el -v (verbose).

[root@SYSADMIT1 ~]# rpm -qlv php-5.3.3-40.el6_6.x86_64
-rw-r--r--    1 root    root          674 Oct 30  2014 /etc/httpd/conf.d/php.conf
-rwxr-xr-x    1 root    root 3699056 Oct 30  2014 /usr/lib64/httpd/modules/libphp5.so
drwxrwx---    2 root    apache       0 Oct 30  2014 /var/lib/php/session
-rw-r--r--    1 root    root         2523 Oct 30  2014 /var/www/icons/php.gif


A continuación podríamos establecer los permisos de forma manual con chmod y chown.

Siguiendo este ejemplo, ejecutaríamos:

chown root:root /etc/httpd/conf.d/php.conf
chown root:root /usr/lib64/httpd/modules/libphp5.so
chown root:apache /var/lib/php/session
chown root:root /var/www/icons/php.gif

chmod u=rw,g=r,o=r /etc/httpd/conf.d/php.conf
chmod u=rwx,g=rx,o=rx /usr/lib64/httpd/modules/libphp5.so
chmod u=rwx,g=rwx,o= /var/lib/php/session
chmod u=rw,g=r,o=r /var/www/icons/php.gif



Linux: Restaurar permisos y propietario de los ficheros de un paquete RPM de automática:


Para restaurar permisos y propietario de los ficheros de un paquete de automática, podemos utilizar el comando rpm con los modificadores --setperms y --setugids

Para realizar un reset de los permisos de un paquete:

rpm --setperms nombre-de-paquete

Para realizar un reset del propietario (usuario y grupo) de un paquete:

rpm --setugids nombre-de-paquete

Para realizar un reset de los permisos de todos los paquetes:

rpm --setperms -a

Para realizar un reset del propietario (usuario y grupo) de todos los paquetes:

rpm --setugids -a

Si --setperms no nos permite el parámetro -a, para realizar un reset de los permisos de todos los paquetes:

for x in $(rpm -qa); do rpm --
setperms $x; done

Si --setugids no nos permite el parámetro -a, para realizar un reset del propietario (usuario y grupo) de todos los paquetes:


for x in $(rpm -qa); do rpm --
setugids $x; done

No hay comentarios:

Publicar un comentario