ICM / linux / Conocer los permisos de tus ficheros en Linux

Conocer los permisos de tus ficheros en Linux

12 diciembre 2021 | Lluis Pons

Si utilizamos el sistema operativo Linux, debemos seguir una serie de recomendaciones para proteger los archivos y ficheros, mediante unos permisos. Un protocolo diferente a si usamos un sistema operativo como Windows, MacOSX, etc…

Una de las cosas más importantes en lo que a seguridad de la información se refiere son los permisos que otorgamos a nuestros ficheros. En ellos, decidimos quién puede y quién no puede acceder a la información almacenada por nosotros mismos o por el resto de los usuarios que acceden a nuestro sistema.

En una instalación por defecto en un sistema GNU/Linux, el sistema de ficheros cumple con el estándar Posix (con algunas diferencias). Este nos permite modificar los permisos sobre los ficheros y directorios con herramientas comunes para todas las distribuciones. Pero ¿cómo sabemos qué permisos tiene un fichero y/o un directorio en nuestro sistema?

Permisos de ficheros en sistema Linux

Para ello, abriremos una consola o utilizaremos un gestor de archivos. En este artículo, utilizaremos la consola, por ser de acceso universal para todas las distribuciones.

Ejecutaremos el comando ‘ls para listar el directorio que queramos:

permisos ficheros linux

En el ejemplo hemos especificado directamente un fichero.

En la lista podremos observar la primera columna que se refiere a los permisos del fichero, y la tercera columna que se refiere al propietario del fichero, y la cuarta al grupo al que pertenece el fichero.

En este ejemplo veríamos que el propietario es el usuario ‘root con permisos de lectura, escritura y ejecución. El grupo ‘root tendría permisos de lectura y ejecución, así como el resto de los usuarios.

– : Nos indica si esta entrada es un directorio o un enlace. En este caso ninguno de los dos.
rwx: Usuario Root
r-x:  Grupo Root
r-x:  El resto de los usuarios.

También tenemos otro comando para ver los permisos de un fichero o directorio, ‘stat.

permisos ficheros linux

Aquí, además de visualizar los permisos y el detalle de los accesos al fichero, también nos permite ver la configuración de los permisos del fichero consultado en formato octal, en Linux.

Tabla de correspondencia Octal/Binario/Permiso y su significado

tabla

El formato octal puede ser utilizado por el comando ‘chmod’ que es el encargado de modificar los permisos de ficheros y directorios.

Como apunte, el permiso en ejecución en el caso de un directorio nos permite acceder al mismo. Combinado con el permiso de lectura, podemos listar los ficheros contenidos en él.

Modificación de permisos de ficheros en Linux

Para modificar los permisos, lo podemos hacer mediante los dos formatos:

chmod 755 /home/user 

equivale a

chmod u+rwx,g+rx,o+rx /home/user

Lo que permitiría acceso total para el usuario propietario, y permisos de lectura y ejecución para el resto de los usuarios. Podemos realizar los cambios con los dos formatos. También tenemos a nuestra disposición permisos especiales como:

Sticky bit: Hoy en día usado solo en directorios para prevenir el borrado accidental de un usuario no propietario de un fichero dentro de un directorio.

chmod +t /home/departamento  # agrega permisos de sticky bit al directorio

Otro ejemplo más común:

linux archivos

SetGID: Para ejecutar el fichero como con el GID del grupo al que pertenece.

chmod g+s /home/fichero    # agrega el setgid al grupo

SetUID: Utilizado para ejecutar procesos en nombre del usuario propietario del ejecutable.

chmod u+s /bin/su   # agrega el setuid

El fichero por excelencia que tiene este permiso es ‘su’, comando utilizado para escalar privilegios y acceder a los permisos del usuario que nos interese (normalmente ‘root’)

linux ficheros

En este punto ya sabemos cómo ver y modificar los permisos en archivos y ficheros en sistema Linux. No obstante, también nos puede interesar modificar los permisos por defecto cuando creamos un fichero o directorio.

¿Cómo podemos establecer unos permisos por defecto para nuestros ficheros?

Bien, para ello tenemos el comando ‘umask’

linux

Para modificar este comportamiento por defecto deberemos añadir en el profile de nuestra sesión el comando para modificar el umask y que aplique a nuestra sesión.

El valor de umask de todo el sistema se puede establecer en /etc/profile o en los archivos de configuración predeterminados de la shell, por ejemplo ~/.bashrc. La mayoría de las distribuciones Linux, establecen un valor predeterminado 022 de umask

Ejemplo: echo “umask 0027” >>~/.bashrc

Y hasta aquí nuestra entrada del blog.