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.
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