Es posible que el concepto de permisos de archivo en Linux le deje algo perplejo si es nuevo en Linux. Dado que Linux es un sistema operativo multiusuario, varios usuarios pueden acceder a los mismos archivos y directorios.
Para mantener la seguridad de su sistema, es posible que desee restringir el acceso a archivos y directorios específicos. Aquí entran en juego los permisos de archivos en Linux.
En esta Guía para principiantes explicaremos qué son los permisos de archivo y cómo funcionan en Linux.
Repasaremos los fundamentos de los permisos de archivo y le mostraremos cómo utilizar las herramientas de línea de comandos para establecer, modificar y ver los permisos.
¿Qué son exactamente los permisos de archivo?
Normalmente, los permisos de archivo son un conjunto de reglas que gobiernan quién puede acceder y qué puede hacer con un archivo o directorio. Los permisos de archivo en Linux se mantienen mediante un código de tres dígitos que refleja varios niveles de acceso.
Hay tres tipos de permisos:
- Leer: Sirve para leer el contenido de un fichero o directorio.
- Escribir: El usuario puede modificar o borrar un fichero o directorio.
- Ejecutar: Permite a un usuario ejecutar un fichero o acceder a un directorio.
Reconocer el código de tres dígitos
En Linux, los permisos de archivos se representan mediante un código de tres dígitos, como 644 o 755. El primer dígito indica los permisos del propietario del archivo, el segundo dígito representa los permisos del grupo y el tercer dígito representa los permisos de todos los demás usuarios.
Cada dígito es el total de los valores de los permisos de lectura, escritura y ejecución. El permiso de lectura vale cuatro puntos, el permiso de escritura vale dos puntos y el permiso de ejecución vale un punto.
Un código de permiso de 644, por ejemplo, significa que el propietario del archivo puede leer y escribir el archivo, pero los miembros del grupo y todos los demás usuarios sólo pueden leerlo.
Examinar los permisos de los archivos
Para ver los permisos de los archivos se puede utilizar el comando ls con la opción -l. Esto mostrará una lista completa de todos los archivos en el directorio actual, incluyendo sus permisos, propietario, grupo, tamaño y hora de modificación.
Utilice el siguiente comando para ver los permisos de un archivo determinado:
ls -l filename
Esta acción mostrará los permisos del archivo especificado.
Modificación de permisos de archivos
Este comando puede utilizarse para modificar los permisos de un archivo. El comando chmod permite establecer, modificar o eliminar permisos de archivos o directorios.
Utilice el siguiente comando para modificar los permisos de un archivo o directorio:
chmod permissions filename
Por ejemplo, utilice el siguiente comando para conceder al propietario del archivo permisos de lectura, escritura y ejecución, al tiempo que permite a los miembros del grupo y al resto de usuarios leer y ejecutar el archivo:
chmod 755 filename
Entendiendo la propiedad de grupos y usuarios
Además de los permisos de archivos, Linux controla el acceso a archivos y directorios a través de la propiedad de usuarios y grupos.
Cada archivo y directorio es propiedad de un usuario o grupo diferente, y estas opciones de propiedad se pueden cambiar utilizando herramientas de línea de comandos.
Cambiar la propiedad de un usuario
Con el comando chown se puede cambiar el propietario de un archivo o directorio. Puede utilizar el comando chown para cambiar el propietario de un archivo o directorio a un usuario determinado.
Utilice el siguiente comando para cambiar el propietario de un archivo:
chown newowner filename
Para modificar, por ejemplo, el propietario de un archivo llamado archivo.txt a un usuario llamado juan, utilice el siguiente comando:
chown john file.txt
Transición de la propiedad de grupo
El comando chgrp se utiliza para cambiar la propiedad de grupo de un archivo o directorio. Puede utilizar el comando chgrp para cambiar el grupo de un archivo o directorio a un grupo determinado.
Utilice el siguiente comando para modificar el grupo de un archivo o directorio:
chgrp newgroup filename
Ejemplo, para cambiar el grupo de un archivo llamado archivo.txt a un grupo llamado usuarios, utilice el siguiente comando:
chgrp users file.txt
Explicación de los permisos especiales
Linux proporciona permisos adicionales que se pueden especificar en archivos y directorios, además de los tres permisos normales (lectura, escritura y ejecución).
Setuid
Este tipo de permiso (indicado por el número 4 en el primer dígito del código de permiso) permite a un usuario ejecutar un archivo con los permisos del propietario del archivo. Se utiliza con frecuencia para programas que deben ejecutarse con privilegios elevados.
Utilice el siguiente comando para establecer el permiso setuid:
chmod u+s filename
Setgid
Con el permiso setgid (indicado por el número 2 en el segundo dígito del código de permiso), un usuario puede crear archivos y directorios con la propiedad del grupo del directorio padre.
Esto se utiliza con frecuencia en carpetas compartidas para garantizar que todos los archivos y directorios generados en el directorio son propiedad del grupo correspondiente.
Utilice el siguiente comando para conceder el permiso setgid:
chmod g+s directoryname
Bit pegajoso
Este tipo de permiso (indicado por el número 1 en el tercer dígito del código de permiso) permite a un usuario borrar sólo sus propios archivos de un directorio compartido. Esto se utiliza con frecuencia en directorios que pueden ser escritos por varios usuarios para evitar el borrado involuntario de archivos.
Para habilitar el bit sticky, ejecute el siguiente comando:
chmod +t directoryname
En la siguientes preguntas con sus respectivas respuesta puede ahondar mucho más en el tema.
¿Cómo puedo cambiar el permiso de varios archivos a la vez?
Utilice el comando chmod con la opción -R para cambiar el permiso de varios archivos y directorios de forma recursiva.
Por ejemplo, para dar permisos de lectura y escritura al propietario del archivo y permisos de lectura a todos los demás para todos los archivos y directorios en el directorio actual, utilice el siguiente comando:
chmod -R 644 *
¿Cómo puedo localizar todos los archivos que tienen un permiso específico?
A fin de encontrar archivos con un permiso determinado, utilice el comando find. Por ejemplo, para identificar todos los archivos con el permiso setuid en el directorio actual y sus subdirectorios, ejecute el siguiente comando:
find . -perm /4000
Finalmente, en esta guía para principiantes sobre los permisos en Linux, cubrimos los fundamentos de los permisos de archivos, incluyendo cómo ver y cambiarlos, cómo cambiar la propiedad y la propiedad de grupo, y cómo utilizar permisos especiales como setuid y setgid.
Tambien, cubrimos los aspectos básicos de los permisos de archivos, incluyendo cómo verlos y cambiarlos, cómo cambiar la propiedad y la propiedad de grupo, y cómo usar permisos especiales como setuid, setgid, y sticky bit. T
Asi mismo, respondimos algunas preguntas comunes acerca de los permisos en Linux, por lo que debería tener una buena comprensión de cómo funcionan los permisos de archivos en Linux.
Recuerde, los permisos de archivo en Linux son sólo un aspecto de la seguridad en Linux, y hay muchas otras cosas que puede hacer para asegurar su sistema Linux.
Asegúrese siempre de que su sistema está actualizado con los parches de seguridad, utilice contraseñas seguras y métodos de autenticación, y utilice herramientas como cortafuegos y sistemas de detección de intrusos para proteger su sistema de ataques.
Siguiendo estas buenas prácticas, puedes ayudar a mantener tu sistema Linux seguro y proteger tus datos de accesos no autorizados.