Este artículo explica los tipos básicos de permisos de directorio, cómo funcionan y cómo comprobarlos.
¿Qué son los permisos de directorio y cómo se aplican?
En Linux®, un directorio es una carpeta en la que almacena archivos. Cada archivo o directorio especifica qué usuarios pueden acceder a ellos. Este artículo explica cómo establecer permisos y posiblemente anularlos.
Ejemplos de anulación:
- Si eres un encarcelado/encarcelado usuario, solo puede acceder a los archivos o directorios a los que está encarcelado.
- Si tiene sudo/root permisos de nivel, puede omitir los permisos de archivo o directorio.
Lista de archivos y directorios
Esta sección contiene ejemplos de operaciones de lista de Linux.
-
Enumere solo los nombres de archivos y directorios:
# ls
-
Enumere los archivos y directorios con mucha más información:
# ls -l # ll
-
Enumere los archivos y directorios y muestre todos los archivos ocultos:
# ls -a
Nota: Los archivos ocultos suelen ser archivos de configuración que el sistema oculta para mantenerlos seguros. -
Enumere los archivos y directorios con mucha más información y con tamaños en KB o GB en lugar de bits:
# ls -lh
Comprender los resultados
Cuando usas -l
, cada archivo o directorio debe brindarle la siguiente información:
drwxr-xr-x. | jdoe | apache | 3864 | 8 de mayo de 2021 | Mis cosas |
---|---|---|---|---|---|
Permisos | Propietario del usuario | Propietario del grupo | Tamaño en bits. Use -h para convertir a KB/GB | Cuándo se editó por última vez | Nombre |
Nota de permisos :Si hay una d al principio, es un directorio, no un archivo.
Aquí hay una guía más detallada sobre cómo usar el ls
comando.
Usuario, grupo, otro
Cada archivo y directorio tiene tres tipos de autorizaciones de usuario que reconoce:
- El usuario establecido como propietario del usuario .
- Cualquier usuario del grupo que esté configurado como Propietario del grupo .
- Cualquiera que no esté en esas dos primeras categorías se conoce como Otro .
Un grupo común en servidores Linux es apache
, para que pueda agregar a cualquiera que trabaje en los sitios web al apache
grupo. Luego tienen el acceso que necesitan a todos los archivos y directorios relacionados con el sitio web.
-
Cambiar el usuario propietario de un archivo o directorio:
# chown <user>: /MyStuff
-
Cambiar el propietario del grupo de un archivo o directorio:
# chown :<group> /MyStuff
-
Cambiar el propietario del usuario + propietario del grupo de un archivo o directorio:
# chown <user>:<group> /MyStuff
-
Cambie el propietario del usuario y el propietario del grupo de un archivo o directorio y todo lo que contiene:
Importante: Tenga cuidado con este comando, ya que está cambiando varios archivos sin opción de deshacer.
# chown -R <user>:<group> /MyStuff
Leer, escribir, ejecutar
Una vez que un archivo o directorio lo reconoce como propietario de un usuario, propietario de un grupo u otro, le asigna una combinación de los siguientes permisos:
- r :El permiso de lectura le permite ver o leer el archivo o directorio.
- w :El permiso de escritura le permite escribir o modificar el archivo o directorio.
- x :El permiso de ejecución le permite ejecutar un archivo ejecutable o buscar en un directorio.
A cada autoridad de usuario se le asignan estas, en orden, donde un -
representa que el permiso está ausente. Por ejemplo, la siguiente tabla explica los permisos rwxr-xr– :
rwx | r-x | r-- |
---|---|---|
La primera parte, permisos de propietario de usuario | La segunda parte, permisos de propietario del grupo | La tercera parte, Otros permisos |
leer, escribir, ejecutar | leer, ejecutar | leer |
Este usuario puede hacer cualquier cosa | Este usuario puede ver y ejecutar el archivo. Pero no modificarlo | Este usuario solo puede mirarlo |
La siguiente imagen proporciona una manera fácil de visualizar esto:
Cómo cambiar permisos con letras
-
Cambiar permisos de archivo o directorio:
# chmod ugo+-=rwx /MyStuff
- Utilice cualquier combinación de ugo para representar usuario, grupo, otro.
- Utilice cualquier combinación de +-= para representar la adición, eliminación o cambio de los permisos actuales a los permisos especificados.
- Utilice cualquier combinación de rwx para representar leer, escribir, ejecutar.
-
Dar leer permisos a otros :
# chmod o+r /MyStuff
-
Eliminar modificar y ejecutar permisos para grupo y otros :
# chmod go-wx /MyStuff
El siguiente gráfico ayuda a ilustrar este concepto:
u usuario | + | r leer |
---|---|---|
g grupo | - | w escribir |
otros | = | x ejecutar |
chmod
también puede usar -R
para cambiar recursivamente todos los archivos y directorios dentro de ese directorio. Como antes, proceda con precaución ya que no hay opción de deshacer.
Cómo cambiar permisos con números
-
Cambiar permisos de archivo o directorio:
# chmod 777 /MyStuff
Este método usa matemáticas, donde sumas los valores de cada permiso para producir un resultado final de tres dígitos:
u usuario | g grupo | u otro | |
---|---|---|---|
r leer =4 | |||
escribir =2 | |||
x ejecutar =1 |
- Dar rwxr-xr– permisos:
u usuario | g grupo | u otro | |
---|---|---|---|
r leer =4 | ✓ | ✓ | ✓ |
escribir =2 | ✓ | ||
x ejecutar =1 | ✓ | ✓ | |
4+2+1 =7 | 4+1 =5 | 4 |
Utilice el siguiente comando:
# chmod 754 /MyStuff
chmod
también puede usar -R
para cambiar recursivamente todos los archivos y directorios dentro de ese directorio. Como antes, proceda con precaución ya que no hay opción de deshacer.
Aquí hay una guía más detallada sobre cómo usar chmod
ADVERTENCIA: No use chmod 777
a menos que estés seguro, está bien. Linux, por defecto, cuenta con sólidas medidas de seguridad. Sin embargo, algunos archivos de configuración no están destinados a ser modificados por nadie. Estos son archivos fundadores que habilitan funciones básicas para la computadora o el servidor. Por ejemplo, determinan cómo activar y permitir que los usuarios inicien sesión. Si se configuran en 777, la computadora o el servidor asume que fue pirateado y apaga todo . En ese caso, no puede iniciar sesión, no puede encender el dispositivo y es irrecuperable. Esta es una manera muy fácil de romper su servidor por completo, así que use chmod
con cuidado.
Cómo practicar
-
Crear un directorio:
# mkdir /MyStuff
Entonces eres libre de ls -l
, chown
y chmod
este directorio vacío tanto como quieras. Cuando haya terminado, limpie después de usted mismo.
-
Eliminar el directorio:
# rmdir /MyStuff
Escenarios más avanzados
Aquí algunos escenarios para explorar:
Escenario 1
El usuario jdoe
necesita acceso a un directorio específico. Sin embargo, desea mantener el propietario del usuario y los propietarios del grupo como están.
Opciones:
- Agregar jdoe al grupo que posee el directorio. Esto da
jdoe
acceso a todos los demás archivos o directorios propiedad de ese grupo. - Otorgar más permisos a 'Otro' en ese directorio. Esto le da acceso a todos los demás usuarios en su computadora o servidor.
- Dale a jdoe
sudo
permisosjdoe
puede usarsudo
para anular los permisos de archivos o directorios individuales. Sin embargo, 'jdoe' tendría los permisos de administrador para acceder a cualquier cosa en su computadora o servidor.
Escenario 2
Tus desarrolladores quieren cambiar /etc y todo lo que contiene a 777
permisos.
Respuesta:DILES QUE NO .
Hay muchos archivos del sistema que se estropearán y potencialmente provocarán la caída de su servidor completo . En su lugar, pregúnteles específicamente a qué archivos o directorios necesitan acceso y qué tipo de acceso necesitan.
Aquí hay una guía más detallada para comprender los permisos de archivos de Linux
Escenario 3
t s S +: Si ejecuta ls -l
y vea los permisos que incluyen un t s S o+ , no continúe.
Estos son permisos de archivos y directorios más avanzados, como SUID, Sticky Bits y ACL. Son más complejos, pero se pueden anular por completo con un chmod
normal. comando.
Use la pestaña Comentarios para hacer cualquier comentario o hacer preguntas. También puede iniciar una conversación con nosotros.