Linux Permisos en Archivos y Directorios🐧
En esta sección, aprenderemos a otorgar y revocar permisos en archivos de Linux/Unix. Este proceso es esencial para gestionar cuidadosamente a qué usuarios y grupos se les permite la lectura, escritura y ejecución de un archivo. No todos los archivos deberían ser accesibles o ejecutables por todos los usuarios del sistema, ya que esto puede dar lugar a vulnerabilidades potenciales en la seguridad. La correcta administración de permisos es una medida preventiva clave para proteger tus datos y mantener la integridad del sistema.
Importancia de Permisos en Sistemas Linux/Unix
Supongamos que estamos en nuestro servidor Linux, y tenemos archivos con extensión .sh. Estos scripts están escritos en Bash o Zsh y pueden configurar el sistema o guardar información sensible, como credenciales de usuario o configuraciones críticas. Ahora, imagina que uno de estos archivos es ejecutable y contiene comandos que se ejecutan con permisos de root. Si accidentalmente se le asigna un permiso de 777, cualquier usuario podría leer, modificar o ejecutar este archivo, ¡incluso con acceso a comandos que deberían estar reservados para el administrador!
Darle permisos tan amplios puede ser un riesgo grave, ya que un usuario con malas intenciones o que simplemente no debería tener acceso podría manipular configuraciones importantes o robar datos. Para evitar esto, lo mejor es ajustar los permisos a una configuración más restrictiva, como 600, que solo permite que el propietario lea y escriba el archivo, sin dar acceso a otros. De esta forma, mantenemos el control y minimizamos riesgos innecesarios de seguridad.
Tipos de Permisos en Linux y Unix
En Linux y sistemas Unix, los permisos de archivos y directorios se gestionan utilizando un sistema de permisos basado en tres tipos:
1. Tipos de Permisos
- Lectura (
r):- Archivos: Permite leer el contenido del archivo.
- Directorios: Permite listar los archivos y subdirectorios en el directorio.
- Escritura (
w):- Archivos: Permite modificar el contenido del archivo.
- Directorios: Permite agregar, eliminar y renombrar archivos dentro del directorio.
- Ejecución (
x):- Archivos: Permite ejecutar el archivo como un programa.
- Directorios: Permite acceder al directorio y utilizarlo como un camino en una ruta de archivos.
2. Representación de Permisos
Los permisos se pueden representar de dos maneras: simbólica y octal.
Representación Simbólica
Los permisos se expresan en forma de letras:
rpara lecturawpara escrituraxpara ejecución-si no se tiene el permiso
Por ejemplo, en la representación rwxr-xr--:
- Propietario:
rwx(lectura, escritura y ejecución) - Grupo:
r-x(lectura y ejecución) - Otros:
r--(solo lectura)
3. Formato de Tipo de Permisos
El formato de permisos en Linux se presenta en una cadena de 10 caracteres que incluye:
- Tipo de archivo: El primer carácter indica el tipo (por ejemplo,
-para archivo regular,dpara directorio,lpara enlace simbólico). - Permisos del propietario: Los siguientes tres caracteres indican los permisos del propietario.
- Permisos del grupo: Los siguientes tres caracteres indican los permisos del grupo.
- Permisos de otros: Los últimos tres caracteres indican los permisos para otros usuarios.
Por ejemplo:
-rw-r--r--
Desglose:
-: Archivo regular.rw-: Propietario tiene permisos de lectura y escritura.r--: Grupo tiene permiso de lectura.r--: Otros tienen permiso de lectura.
4. Categoría de Usuarios
Los permisos se aplican a tres categorías de usuarios:
- Propietario (
u): El usuario que es dueño del archivo o directorio. - Grupo (
g): Un grupo de usuarios que comparten permisos sobre el archivo o directorio. - Otros (
o): Todos los demás usuarios que no son ni el propietario ni parte del grupo.
5. Representación Octal
La representación octal utiliza números para expresar los permisos:
- 4: Lectura (
r) - 2: Escritura (
w) - 1: Ejecución (
x) - 0: Sin permiso (
-)
Los permisos se suman para cada categoría. Por ejemplo:
7(4+2+1) =rwx(lectura, escritura y ejecución)6(4+2) =rw-(lectura y escritura)5(4+1) =r-x(lectura y ejecución)4=r--(solo lectura)
Ejemplos de Representación Octal
chmod 755 archivo: Establece permisos comorwxr-xr-x:- Propietario:
rwx(lectura, escritura y ejecución) - Grupo:
r-x(lectura y ejecución) - Otros:
r-x(lectura y ejecución)
- Propietario:
chmod 644 archivo: Establece permisos comorw-r--r--:- Propietario:
rw-(lectura y escritura) - Grupo:
r--(solo lectura) - Otros:
r--(solo lectura)
- Propietario:
chmod 700 directorio: Establece permisos comorwx------:- Propietario:
rwx(lectura, escritura y ejecución) - Grupo:
---(sin permisos) - Otros:
---(sin permisos)
- Propietario:
6. Ejemplos Comunes
chmod 777 archivo: Da permisos completos a todos (lectura, escritura y ejecución).chmod 600 archivo: Solo permite al propietario leer y escribir el archivo.chmod 444 archivo: Solo permite a todos leer el archivo (sin escritura ni ejecución).
7. Comandos Relacionados
chmod: Cambia los permisos de un archivo o directorio.
Uso:chmod [opciones] permisos archivochown: Cambia el propietario de un archivo o directorio.
Uso:chown usuario:grupo archivochgrp: Cambia el grupo asociado a un archivo o directorio.
Uso:chgrp grupo archivo
8. Cómo Utilizar
- Para cambiar permisos:
Usachmodseguido de la representación octal o simbólica. Por ejemplo, para dar permisos de lectura y escritura al propietario y solo lectura al grupo y otros:chmod 644 archivo.txt - Para cambiar propietario:
Si quieres cambiar el propietario de un archivo ausuarioy el grupo agrupo:chown usuario:grupo archivo.txt - Para ver permisos:
Usals -lpara listar archivos y mostrar sus permisos.ls -l
8.Conclusion
Manejar los permisos en Linux/Unix es clave para mantener todo bajo control. No es solo un tema de “quién puede hacer qué”, sino de asegurarse de que los archivos y configuraciones críticas no estén al alcance de cualquiera. Saber cómo funcionan los permisos de lectura, escritura y ejecución, y cómo asignarlos de forma correcta, es el primer paso para evitar que usuarios no autorizados tengan acceso innecesario a tu sistema.
Ajustar los permisos a configuraciones más estrictas como 600 o 700 para archivos importantes te ayuda a limitar el acceso solo a quienes realmente necesitan esos permisos. Evita a toda costa los 777 — esos permisos abiertos pueden meter a tu sistema en problemas serios. Al final del día, se trata de mantener el control y reducir las chances de que alguien haga un mal uso de tus archivos.
Así que, ya sabes: define bien quién tiene acceso, qué puede hacer, y mantén tu sistema tan seguro como tus configuraciones de permisos te lo permitan.
Ejercicios de Gestión de Permisos en Linux/Unix
- Verificar permisos de un archivo:
- Usa el comando
ls -lpara mostrar los permisos de un archivo específico (por ejemplo,archivo.txt).
- Usa el comando
- Cambiar permisos a lectura y escritura para el propietario:
- Usa
chmodpara dar permisos de lectura y escritura al propietario de un archivo.
- Usa
- Agregar permisos de ejecución a un archivo:
- Modifica los permisos de un archivo de script (por ejemplo,
script.sh) para que sea ejecutable, pista también se utilizachmod.
- Modifica los permisos de un archivo de script (por ejemplo,
- Quitar permisos de escritura para el grupo:
- Usa
chmodpara eliminar el permiso de escritura de un archivo (por ejemplo,documento.txt) para el grupo.
- Usa