viernes, 22 de agosto de 2014

Atributos, ficheros y directorios (Linux)

En linux es posible asignarle atributos a los ficheros, esto permite incrementar el nivel de seguridad. Es posible por ejemplo proteger un archivo para que no se pueda eliminar.
Para ver los atributos de un fichero:
Código   
[root@tester1 prueba]# lsattr
-------------e- ./fich.txt
-------------e- ./fich2.txt
La modificación de los atributos se puede realizar con la ayuda de:
Código   
chattr [ -RVf ] [ -v version ] [ mode ] files...
Para obtener la documentación completa lo mejor es recurrir al man que para eso está. Los atributos que me paracen más interesantes son:
  • a, No se puede borrar el fichero, solo hacer un append.
  • i, Inmutable, no se puede borrar, modificar ni crear hard links sobre el.
Para activar un atributo se antepone un + a la opción y para desactivarlo un -.
Por ejemplo evitar la eliminación de un fichero pero si append:
Código   
[root@tester1 prueba]# ls -l
total 24
-rw-r-xr--. 1 root root 9376 mar 6 16:50 fich2.txt
-rw-r-xr--. 1 root root 9376 mar 6 16:51 fich.txt
[root@tester1 prueba]# lsattr
-------------e- ./fich.txt
-------------e- ./fich2.txt
[root@tester1 prueba]# chattr +a fich.txt
[root@tester1 prueba]# lsattr
-----a-------e- ./fich.txt
-------------e- ./fich2.txt
[root@tester1 prueba]# rm fich.txt
rm: ¿borrar el fichero regular «fich.txt»? (s/n) s
rm: no se puede borrar «fich.txt»: Operación no permitida
[root@tester1 prueba]# cat fich2.txt >> fich.txt
[root@tester1 prueba]# ls -l
total 32
-rw-r-xr--. 1 root root 9376 mar 6 16:50 fich2.txt
-rw-r-xr--. 1 root root 18752 mar 6 16:52 fich.txt
Proteger un fichero:
Código   
[root@tester1 prueba]# chattr -a fich.txt
[root@tester1 prueba]# lsattr
-------------e- ./fich.txt
-------------e- ./fich2.txt
[root@tester1 prueba]# chattr +i fich.txt
[root@tester1 prueba]# lsattr
----i--------e- ./fich.txt
-------------e- ./fich2.txt
[root@tester1 prueba]# rm fich.txt
rm: ¿borrar el fichero regular «fich.txt»? (s/n) s
rm: no se puede borrar «fich.txt»: Operación no permitida
[root@tester1 prueba]# cat fich2.txt >> fich.txt
-bash: fich.txt: Permiso denegado
[root@tester1 prueba]# ln fich.txt lfich.txt
ln: creating hard link «lfich.txt» => «fich.txt»: Operación no permitida
[root@tester1 prueba]# ln -s fich.txt lfich.txt
El posible proteger directorios enteros de forma recursiva con:
Código   
chattr -R +i prueba
Yo lo veo bastante útil para proteger ficheros de configuración de aplicaciones.

No hay comentarios:

Publicar un comentario