Conocer el sistema de archivos Linux es técnicamente obligatorio para todo administrador de redes, servidores o sistemas. Veamos un aspecto de este tema: los permisos.
Los permisos en un sistema de archivos Linux son un aspecto muy importante, pues nos permiten compartir o restringir información y acceso a nuestros recursos del sistema. Además, un mal manejo de los permisos puede provocar que algo no funcione bien.
Utilizando el comando ls – l podemos ver los permisos de un determinado archivo o directorio. En el siguiente ejemplo tenemos un archivo llamado seguridad y mostramos sus permisos:
En el campo de tipo de archivos se pueden tener las siguientes opciones:
d | Directorio |
l | Enlace simbólico |
c | Dispositivo de carácter |
b | Dispositivo de bloques |
s | Conexiones locales |
p | Conexiones |
También hay que tomar en cuenta que si la x de propietario tiene una s significa que el bit de SetUid (4000) está activo. Algo similar pasa si la x del grupo tiene una s, indica que el bit se SetGid (2000) está activado. Ambas situaciones deben cuidarse. Estas opciones se utilizan para permitirle a un usuario ejecutar archivos binarios con privilegios root (privilegios elevados de administrador). Muchos atacantes analizan los sistemas para detectar archivos con estos bits activados y utilizarlos para tener acceso al sistema.
Vea más adelante en este mismo artículo cómo añadir un permiso SetUid
Utilizamos el comando chmod para modificar los permisos de un archivo o directorio.
Los códigos que necesitamos entender son los siguientes:
Código | Permiso | Valor octal |
r | Lectura | 4 |
w | Escritura | 2 |
x | Ejecución | 1 |
Éstos códigos se pueden sumar entre sí y obtener el permiso correspondiente. Es decir, si deseamos que el archivo tenga permiso de Lectura y Escritura el valor octal sería el 6.
Nos podemos guiar de la siguiente tabla para entender mejor:
Binario
r w x |
Valor octal | Permiso |
0 0 1 | 1 | Ejecución |
0 1 0 | 2 | Escritura |
0 1 1 | 3 | Escritura y Ejecución |
1 0 0 | 4 | Lectura |
1 0 1 | 5 | Lectura y ejecución |
1 1 0 | 6 | Lectura y escritura |
1 1 1 | 7 | Lectura, escritura y ejecución |
Utilizando este método, la forma de utilizar el comando chmod es la siguiente:
Chmod 600 seguridad.txt
Indica que cambiamos los permisos al archivo seguridad.txt: lectura y escritura para el propietario (el 6), sin permisos para el grupo (el 0) y sin permisos para los otros (el segundo 0).
Otra forma de utilizar el comando chmod es con los símbolos + , – , =
+ | Agrega permiso |
– | Elimina permiso |
= | Asigna permiso |
Si deseamos añadir el permiso de ejecución al propietario del archivo seguridad.txt el comando sería:
Chmod u+x seguridad.txt
El comando chmod para añadir permiso setUid a un archivo es:
chmod u+s seguridad.txt
y para eliminar el permiso:
chmod u-s seguridad.txt
El manejo de permisos en un sistema de archivos es un aspecto importante en la administración de un sistema, y por extensión en la administración de servidores y redes de datos. Linux permite hacerlo de forma muy sencilla, solo hay que acostumbrarse un poco a la interfaz. Como Ingeniero en Sistemas de seguro te encontrarás muchas veces con la tarea de cambiar los permisos a un archivo, por lo que aprender a realizarlo es un aspecto importante en tu formación profesional.
Coméntanos algún comando chmod que utilices a menudo.