Por diseño, Linux es un sistema operativo multiusuario. En un sistema empresarial, habría múltiples usuarios accediendo al mismo sistema. Pero si cualquier usuario pudiera acceder y modificar todos los archivos pertenecientes a otros usuarios o archivos del sistema, esto sin duda sería un riesgo para la seguridad.
Esta es la razón por la que UNIX y, por lo tanto, Linux (Linux es un sistema similar a Unix) tiene medidas de seguridad integradas. Esto garantiza que solo los usuarios deseados puedan acceder, modificar o ejecutar un archivo o directorio.
A qué archivo accedería qué usuario se decide por dos factores en Linux:
- Propiedad del archivo
- Permiso de archivo
Comprender la propiedad y el permiso de los archivos es crucial para un usuario de Linux. Explicaré estos términos en detalle aquí.
Propiedad de archivos en Linux
Nota:podría usar el término archivo aquí, pero también se aplica a los directorios. Supongo que sabes que los directorios son archivos de todos modos.
Cada archivo y directorio en Linux tiene tres tipos de propietarios:
Usuario
El usuario es el propietario del archivo. Cuando crea un archivo, se convierte en el propietario del archivo. La propiedad también se puede cambiar, pero eso lo veremos más adelante.
Grupo
Cada usuario es parte de un determinado grupo (s). Un grupo consta de varios usuarios y esta es una forma de administrar usuarios en un entorno multiusuario.
Por ejemplo, si tiene un equipo de desarrollo, un equipo de control de calidad y un equipo de administración de sistemas que acceden al mismo sistema, debe crear grupos separados para ellos. De esta manera, puede administrar los archivos y la seguridad del sistema de manera efectiva. Ahorra tiempo porque en lugar de agregar permisos manualmente para cada usuario, simplemente puede agregarlos a un grupo y cambiar el permiso para el grupo. Verás cómo hacerlo más adelante en este artículo.
Incluso si eres el único usuario del sistema, seguirás siendo parte de muchos grupos. Las distribuciones como Ubuntu también crean un grupo con el mismo nombre que el nombre del usuario.
💡Ejecuta el comando grupos para ver a qué grupos de usuarios pertenece.Otro
'Otro' puede considerarse como un supergrupo con todos los usuarios del sistema. Básicamente, cualquier persona con acceso al sistema pertenece a este grupo.
En otras palabras, 'Usuario' es un solo usuario, Grupo es una colección de usuarios y Otro consta de todos los usuarios del sistema.
Permisos de archivos en Linux
Cada archivo y directorio en Linux tiene los siguientes tres permisos para los tres tipos de propietarios:
Permisos para archivos
- Leer:puede ver o copiar el contenido del archivo
- Escribir:puede modificar el contenido del archivo
- Ejecutar:puede ejecutar el archivo (si es ejecutable)
Permisos para directorios
- Leer:puede enumerar todos los archivos y copiar los archivos del directorio
- Escribir:puede agregar o eliminar archivos en el directorio (también necesita permiso de ejecución)
- Ejecutar:puede ingresar al directorio
Comprender los permisos y la propiedad de los archivos en Linux
Ahora que conoce la terminología básica de los permisos y la propiedad de los archivos, es hora de verlo en acción.
Puede usar el 'comando stat' o el 'comando ls' para verificar los permisos del archivo.
Si usa el comando ls con la opción -l en un archivo, verá un resultado como este:
-rwxrw-r-- 1 abhi itsfoss 457 Aug 10 11:55 agatha.txt
Permítanme explicar esta salida con una imagen:
Permítanme explicar con más detalle toda la salida en detalle:
- Tipo de archivo :indica el tipo de archivo. d significa directorio, – significa archivo normal, l significa enlace simbólico.
- Permisos :este campo muestra el conjunto de permisos en un archivo. Lo explicaré en detalle en la siguiente sección.
- Recuento de enlaces fijos :Muestra si el archivo tiene enlaces duros. El recuento predeterminado es uno.
- Usuario :El usuario propietario de los archivos.
- Grupo :El grupo que tiene acceso a este archivo. Solo un grupo puede ser propietario de un archivo a la vez.
- Tamaño del archivo :Tamaño del archivo en bytes.
- Hora de modificación :La fecha y hora en que se modificó el archivo por última vez.
- Nombre de archivo :Obviamente, el nombre del archivo o directorio.
Ahora que ha entendido la salida del comando ls -l, concentrémonos en la parte de permisos del archivo.
En el comando anterior, verá el permiso de archivo como este en el formato de nueve dígitos :
rwxrw-r--
Cada letra denota un permiso particular:
- r:permiso de lectura
- w :permiso de escritura
- x:Permiso de ejecución
- –:No se ha establecido ningún permiso
Los permisos siempre están en el orden de lectura, escritura y ejecución, es decir, rwx. Y luego estos permisos se establecen para los tres tipos de propietarios (ver la sección de propiedad) en el orden de Usuario, Grupo y Otro.
Esta imagen lo explicará mejor:
Entonces, si observa la imagen de arriba ahora, puede decir lo siguiente sobre los permisos de archivo:
- El archivo tiene permisos de lectura, escritura y ejecución para el propietario del usuario. Pero, ¿quién es este usuario propietario del archivo? Tiene esta información en la salida de ls -l (es decir, usuario abhi).
- El archivo tiene permisos de lectura y escritura para el grupo, pero no de ejecución. ¿Qué grupo es? Tienes la información del grupo en la salida del comando ls -l (es decir, group itsfoss).
- El archivo solo tiene permiso de lectura para Otros, es decir, todos los que tienen acceso al sistema. No necesita saber cuál es el otro porque "otro" significa todos los usuarios.
Ahora, si ve el comando ls -l completo una vez más, puede leer los permisos y la propiedad del archivo juntos.
-rwxrw-r-- 1 abhi itsfoss 457 Aug 10 11:55 agatha.txt
El archivo agatha.txt es propiedad del usuario abhi y abhi tiene permisos de lectura, escritura y ejecución. Todos los miembros del grupo istfoss tienen acceso de lectura y escritura a este archivo, mientras que todos los demás solo tienen acceso de lectura a este archivo.
Nota:El usuario raíz tiene superpoderes y, normalmente, tiene permisos de lectura, escritura y ejecución para todos los archivos, incluso si no lo ve en los permisos de archivo.
Un solo usuario puede ser miembro de varios grupos, pero solo el grupo principal del usuario es el propietario del grupo de un archivo creado por el usuario. El grupo principal de un usuario se puede encontrar usando el comando id como id -gn <username>
. Deje el nombre de usuario en blanco si está tratando de encontrar su propio grupo principal.
Ahora que sabe cómo averiguar los permisos de un archivo, veamos cómo puede cambiar el permiso y la propiedad de un archivo.
Cambiar permisos de archivo en Linux
Puede usar el comando chmod para cambiar los permisos en un archivo en Linux.
📚Los permisos solían llamarse modo de acceso y por lo tanto chmod era la forma abreviada de cambiar el modo de acceso .Hay dos formas de usar el comando chmod:
- Modo absoluto
- Modo simbólico
Usando chmod en modo absoluto
En el modo absoluto, los permisos se representan en forma numérica (sistema octal para ser precisos). En este sistema, cada permiso de archivo está representado por un número.
- r (leer) =4
- w (escribir) =2
- x (ejecutar) =1
- – (sin permiso) =0
Con estos valores numéricos, puede combinarlos y, por lo tanto, se puede usar un número para representar todo el conjunto de permisos.
Número | Permiso |
---|---|
0 | — |
1 | –x |
2 | -w- |
3 (es decir, 2+1) | -wx |
4 | r– |
5 (es decir, 4+1) | r-x |
6 (es decir, 4+2) | rw- |
7 (es decir, 4+2+1) | rwx |