16 marzo 2021

Proteger archivos y directorios para que no sean borrados por root - chattr

 

Esta vez vengo, para proteger archivos y directorios en Linux, incluso si el usuario root quisiera eliminar el archivo no podría, este comando es usado para aquellos archivos que algunas aplicaciones cambiar la configuración sin nuestra autorización, este comando podemos usar en cualquier distribución de Linux, no es necesario instalar un paquete adicional para su funcionamiento,

Si queremos establecer el bloqueo al archivo lo haríamos de esta forma:

1
chattr +i nombre_archivo

Para ver su cambio ejecutamos:

1
lsattr nombre_archivo

Indicando como salida:

1
----i----------- nombre_archivo

De esta si quisieramos borrar el archivo el sistema nos indaría que es imposible realizar esta operación, en caso que sea a un directorio utilizaríamos la forma recursiva sobre el directorio

1
chattr +R -i nombre_carpeta

Ahora si queremos solo que archivo permita agregar líneas adicionales al archivo sin modificar el archivo ni tampoco eliminarlo usamos:

1
chattr +a nombre_archivo

Para confirmar el mismo ejecutamos nuevamente:

1
lsattr nombre_archivo

Indicando como salida:

1
----a----------- nombre_archivo

En caso que queramos eliminar la proteccion del archivo ejecutamos:

1
chattr -ia nombre_archivo

De esta forma podemos volver a los parametros originales el archivo

Ahora si queremos eliminar la protección o bloqueo a la carpeta ejecutamos:

1
chattr -R -i nombre_carpeta

Como indique anteriormente volveriamos a los permisos por defecto de la carpetas con todo su contenido

NOTA: Fuente original de los artículos:
https://blog.desdelinux.net/chattr-maxima-proteccion-en-linux/
https://www.sololinux.es/proteger-archivos-y-carpetas-con-el-comando-chattr/

20 febrero 2021

Permisos especiales en Linux: Sticky Bit, SUID y SGID

Existen una serie de permisos especiales en GNU/Linux, que, aunque no son habituales, es necesarios saberlos, por ejemplo, para trabajar en grupo sobre ciertos directorios que son necesarios a la hora asignar permisos a usuarios.

Permisos especiales en Linux


sticky bit

Se trata de un permiso de acceso que puede ser asignado archivos y directorios en sistemas UNIX y similares. Aunque históricamente su fin eran otro, actualmente el sticky bit se utiliza sobre directorios.

Cuando se le asigna a un directorio, significa que los elementos que hay en ese directorio solo pueden ser renombrados o borrados por su propietario o bien por root. El resto de usuarios que tengan permisos de lectura y escritura, los podrán leer y modificar, pero no borrar.

El sticky bit comúnmente es utilizado para “/tmp”

Este tipo de permisos sobre un directorio se puede otorgar de varias maneras:

1
chmod 1775 test

O bien

1
chmod +t /test #para activar sticky bit
2
chmod -t /test #para desactivar sticky bit

Si un usuario intenta borrar un fichero de una carpeta con sticky bit, recibierá el siguiente mensaje:

1
[david@servcentos]$ rm -rf hola
1
rm: cannot remove ‘hola’: Operation not permitteds


SUID

Cuando se activa el bit SUID sobre un fichero significa que el que lo ejecute va a tener los mismos permisos que el que creó el archivo. Esto es útil en algunas ocasiones, aunque hay que utilizarlo con cuidado, ya que puede acarrear problemas de seguridad

Para activarlo:

1
[david@servcentos test]$ chmod 4775 hello.sh
2
[david@servcentos test]$ ls -l hello.sh
3
-rwsrwxr-x 1 david david 26 Jun 11 19:02 hello.sh
4
[david@servcentos test]$ chmod -x hello.sh
5
[david@servcentos]$ ls -l hello.sh
6
-rwSrw-r-- 1 david david 26 Jun 12 19:02 hello.sh

Observamos que en la última línea le quitamos el servicio de ejecución al archivo y en los permisos se reemplaza la s minúscula por la S mayúsculas.


SGID

El bit SGID es lo mismo que SUID, pero a nivel de grupo. Esto es, todo archivo que tenga activo el SGID, al ser ejecutado, tendrás los privilegios del grupo al que pertenece.

Opción bastante útil si queremos configurar un directorio para colaborar diferentes usuarios. Si se aplica este bit al directorio, cualquier archivo creado en dicho directorio, tendrá asignado el grupo al que pertenece el directorio

Por ejemplo, si un usuario que tiene permiso de escritura en el directorio crea un archivo allí, ese archivo es un miembro del mismo grupo que el directorio y no el grupo del usuario. Como hemos dicho, esto es muy útil en la creación de directorios compartidos.

1
chmod g+s "directorio"

En el caso de un archivo:

1
chmod 2555 "archivo"

Espero que esta información les pueda servir en algún momento. Nos vamos leyendo.

NOTA: Fuente original del artículo:
https://www.ochobitshacenunbyte.com/2019/06/17/permisos-especiales-en-linux-sticky-bit-suid-y-sgid/

Eliminar archivos por su número de Inodo

Si alguna vez encuentras en tu equipo archivos del tipo «??!», «-aasd/a», etc. creados por error en Linux, o que posean caracteres que son difíciles de escribir en el teclado, o que no posean nombre el archivo pero si ocupan espacio en disco, te darás cuenta de que a veces no es demasiado sencillo borrarlo, ya que contienen caracteres que muchas veces ni siquiera «escapándolos» permite borrarlos.

Para ello, existe una solución, cada archivo tiene un número de Inodo, para averiguarlo:

1
[root@localhost] ls -i <archivo>

Eliminar

1
[root@localhost] ls -i *

2781528 index.php    2781559 ??!

el archivo «??!» tiene el número de inodo 2781559, y podemos borrarlo gracias al comando «find» y su opción «-inum» (inode number):

1
find . -inum 2781559 -exec rm -i {} \;

Y el archivo ya ha sido borrado.

NOTA: Fuente original del artículo:
https://rm-rf.es/eliminar-ficheros-por-su-numero-de-inodo/

29 agosto 2020

Agregar y modificar rutas al $PATH de Linux


Si usamos distribuciones como en RHEL, Centos, Debian, Ubuntu les vengo con un tutorial súper practico a la hora de agregar una linea al $PATH de Linux, las nuevas rutas permiten ejecutar en cualquier lugar o directorio programas de ejecución en Linux, a continuación le muestro una breve explicación que le será de gran ayuda a la hora de agregar o modificar nuestro $PATH

Si queremos agregar una nueva ruta al $PATH, tomando en consideración que la distribución que tome para la prueba fue CentOS 7, cabe a destacar que los cambios para agregar al $PATH son de manera permanente, antes de realizar un cambio a nuestro $PATH debemos primero mostrar y de esa forma asegurarnos que tenemos la linea original del mismo;

1
echo $PATH

Este comando permite mostrar la ruta de nuestro $PATH, les recomiendo que si vamos agregar una nueva linea guardemos de manera temporal en un bloc de notas esta línea, para agregar una nueva ruta ejecutamos;

1
export PATH=$PATH:/ruta_de_ejecucion

Un ejemplo al comando anterior, en caso que queramos agregar una ruta de ejecución, de un programa que se encuentre por ejemplo en /opt, escribimos

1
export PATH=$PATH:/opt/JAVA/bin

De esta forma agregamos esta linea de ejecución en nuestro $PATH para visualizar la nueva ruta volvemos a escribir

1
echo $PATH

Nos aseguramos en este caso que fue agregada con éxito, tratando de hacer una ejecución de un comando que se pueda encontrar en la nueva ruta, por ejemplo;

1
java --version

El comando anterior lo puse como ejemplo para mostrar la ejecución de un programa que pueda estar contenido en la nueva ruta

En caso que cometamos un error a la hora de insertar la nueva ruta, o simplemente no queramos la nueva ruta porque le hemos dado de bajo, podemos editar toda la linea de $PATH nuevamente para sustituir el error cometido o eliminar la linea agregada;

1
export PATH="/ruta_modificada_o_nueva"

De esta forma podemos arreglar los errores de insersión en el $PATH, por eso recomiendo siempre antes de agregar una nueva linea de $PATH guardar primero o capturar la linea original antes de cualquier modificación, para verificar que la misma se hizo de manera correcta ejecutamos nuevamente;

1
echo $PATH

Para finalizar si quieren que los cambios se mantenga de manera permanente en todas las cuentas a las nuevas rutas de $PATH agregadas o modificadas, realicen el cambio desde la cuenta root de nuestra distribución de Linux como indique al comienzo de esta publicación.

28 agosto 2020

Costo de Instancias en Amazon

 

Las personas que trabajan en la nube, en especial en Amazon, les recomiendo este sitio web, cuando hablamos de costos, este sitio web te da un aproximado de cuanto me saldría una instancia al mes basándose según la zona donde tengamos alojado las instancias, es un forma sencilla de consultar y ver también las características del equipo a la hora de poner en marcha un sistema.

26 agosto 2020

Calculadora de IP para Redes y Subredes


Hoy les vengo con esta herramienta en línea, una calculadora de IP para redes, es esencial a la hora de saber en que rango de ip estoy trabajando, si me encuentro armando una nueva red que cantidad de host o subredes puedo conformar, muy práctica y sencilla, además en su sección de subredes es muy buena porque te indica la cantidad de redes que puedes armar y la cantidad de host en ellos describiendo los términos a usar, a continuación publico una versión pequeña de esta maravillosa calculadora o puedes ir al enlace que aparece para mas información.

24 agosto 2020

Comprimir y descomprimir .tar.gz, .tar, .gz y .zip consola Linux


Archivos .tar.gz:

Comprimir: tar -czvf nombre_del_archivo.tar.gz /carpeta/a/comprimir/
Descomprimir: tar -xzvf nombre_del_archivo.tar.gz

Archivos .tar:

Comprimir: tar -cvf nombre_del_archivo.tar /dir/a/comprimir/
Descomprimir: tar -xvf nombre_del_archivo.tar

Archivos .gz:

Comprimir: gzip -9 nombre_del_archivo.formato
Descomprimir: gzip -d nombre_del_archivo.formato.gz

Archivos .zip:

Comprimir: zip nombre_del_archivo.zip /carpeta/a/comprimir/
Descomprimir: unzip nombre_del_archivo.zip

NOTA: Fuente original del artículo: