Permisos de archivos en Linux/Unix: ¿Cómo leer, escribir y cambiar?
Linux es un clon de UNIX, el sistema operativo multiusuario al que pueden acceder muchos usuarios simultáneamente. Linux también se puede utilizar en mainframes y servidores sin necesidad de realizar ninguna modificación, pero esto plantea problemas de seguridad, ya que un usuario no deseado o malintencionado puede corromper, cambiar o eliminar datos cruciales. Para lograr una seguridad eficaz, Linux divide la autorización en dos niveles.
- Propiedad del activo:
- Permiso
El concepto de archivo Linux (permission) y propiedad es crucial en Linux. Aquí, explicaremos los permisos y la propiedad de Linux y discutiremos ambos. Comencemos con el Propiedad.
Haga clic aquí si el video no es accesible
Propiedad de archivos de Linux
A cada archivo y directorio de su sistema Unix/Linux se le asignan 3 tipos de propietarios, que se detallan a continuación.
User
Un usuario es el propietario del archivo. De forma predeterminada, la persona que creó un archivo se convierte en su propietario. Por lo tanto, a veces a un usuario también se le llama propietario.
Grupo procesos
Un grupo de usuarios puede contener varios usuarios. Todos los usuarios que pertenecen a un grupo tendrán los mismos permisos de grupo de Linux para acceder al archivo. Suponga que tiene un proyecto en el que varias personas requieren acceso a un archivo. En lugar de asignar permisos manualmente a cada usuario, puede agregar todos los usuarios a un grupo y asignar permisos de grupo para archivar de modo que solo los miembros de este grupo y nadie más puedan leer o modificar los archivos.
Otros
Cualquier otro usuario que tenga acceso a un archivo. Esta persona no ha creado el archivo ni pertenece a un grupo de usuarios que pueda ser propietario del archivo. Prácticamente significa todos los demás. Por lo tanto, cuando configura el permiso para otros, también se lo conoce como establecer permisos para el mundo.
Ahora surge la gran pregunta: ¿cómo Linux distingue entre estos tres tipos de usuarios para que un usuario 'A' no pueda afectar un archivo que contenga información/datos vitales de otro usuario 'B'. Es como si no quisieras que tu colega, que trabaja en tu Computadora Linux, para ver tus imágenes. Aquí es donde Permisos se establecen y definen comportamiento del usuario.
Entendamos el Sistema de permisos en Linux.
Permisos de archivos de Linux
Cada archivo y directorio en su sistema UNIX/Linux tiene los siguientes 3 permisos definidos para los 3 propietarios discutidos anteriormente.
- Leer: Este permiso le otorga la autoridad para abrir y leer un archivo. El permiso de lectura en un directorio le brinda la posibilidad de enumerar su contenido.
- Escribir: El permiso de escritura le otorga la autoridad para modificar el contenido de un archivo. El permiso de escritura en un directorio le otorga la autoridad para agregar, eliminar y cambiar el nombre de los archivos almacenados en el directorio. Considere un escenario en el que tiene que escribir permiso en un archivo pero no tiene permiso de escritura en el directorio donde está almacenado el archivo. Podrás modificar el contenido del archivo. Pero no podrá cambiar el nombre, mover ni eliminar el archivo del directorio.
- Ejecutar: In Windows, un programa ejecutable suele tener una extensión “.exe” y puedes ejecutarlo fácilmente. En Unix/Linux, no puede ejecutar un programa a menos que esté configurado el permiso de ejecución. Si el permiso de ejecución no está configurado, es posible que aún pueda ver/modificar el código del programa (siempre que los permisos de lectura y escritura estén configurados), pero no ejecutarlo.
Veamos los permisos de archivos en Linux con ejemplos:
ls-l en la terminal da
ls - l
Aquí hemos resaltado '-rw-rw-r–'y este código de aspecto extraño es el que nos informa sobre los permisos de Unix otorgados al propietario, al grupo de usuarios y al mundo.
Aquí, el primero'–'implica que hemos seleccionado un archivo.p>
De lo contrario, si fuera un directorio, d se habría mostrado.
Los personajes son bastante fáciles de recordar.
r = permiso de lectura
w = permiso de escritura
x = ejecutar permiso
– = sin permiso
Veámoslo de esta manera.
La primera parte del código es 'rw-'. Esto sugiere que el propietario de la “Casa” puede:
- Leer el archivo
- Escribir o editar el archivo
- No puede ejecutar el archivo porque el bit de ejecución está establecido en "-".
Por diseño, muchas distribuciones de Linux como Fedora, CentOS, Ubuntu, etc. agregará usuarios a un grupo con el mismo nombre de grupo que el nombre de usuario. Por lo tanto, un usuario "tom" se agrega a un grupo llamado "tom".
La segunda parte es 'rw-'. Para el grupo de usuarios "Inicio" y los miembros del grupo pueden:
- Leer el archivo
- Escribir o editar el archivo
La tercera parte es para el mundo, es decir, cualquier usuario. Dice 'r–'. Esto significa que el usuario sólo puede:
- Leer el archivo
Cambiar permisos de archivos/directorios en Linux usando el comando 'chmod'
Digamos que no quiere que su colega vea sus imágenes personales. Esto se puede lograr cambiando los permisos de los archivos.
Podemos usar el 'chmod' comando que significa "cambiar modo". Usando el comando, podemos establecer permisos (lectura, escritura, ejecución) en un archivo/directorio para el propietario, el grupo y el mundo.
Sintaxis:
chmod permissions filename
Hay 2 maneras de utilizar el comando –
- modo absoluto
- Modo simbólico
Modo absoluto (numérico) en Linux
En este modo, archivo los permisos no se representan como caracteres sino como un número octal de tres dígitos.
La siguiente tabla proporciona números para todos los tipos de permisos.
Número | Tipo de permiso | Símbolo |
---|---|---|
0 | Sin autorización | - |
1 | Implementación | -X |
2 | Escribe. | -w- |
3 | Ejecutar + Escribir | -wx |
4 | Leer | r– |
5 | Leer + Ejecutar | rx |
6 | Leer +Escribir | rw- |
7 | Leer + Escribir + Ejecutar | rwx |
Veamos el comando de permisos chmod en acción.
En la ventana de terminal anterior, hemos cambiado los permisos del archivo "muestra a" 764 ".
El código absoluto '764' dice lo siguiente:
- El propietario puede leer, escribir y ejecutar
- El grupo de usuarios puede leer y escribir.
- El mundo sólo puede leer
Esto se muestra como '-rwxrw-r–
Así es como puede cambiar los permisos de usuario en Linux en el archivo asignando un número absoluto.
Modo simbólico en Linux
En el modo Absoluto, cambia los permisos para los 3 propietarios. En el modo simbólico, puedes modificar los permisos de un propietario específico. Hace uso de símbolos matemáticos para modificar los permisos de los archivos Unix.
Operator | Descripciones |
---|---|
+ |
Agrega un permiso a un archivo o directorio |
– |
Quita el permiso |
= |
Establece el permiso y anula los permisos establecidos anteriormente. |
Los distintos propietarios están representados como:
Denotaciones de usuario | |
---|---|
u |
usuario / propietario |
g |
grupo de XNUMX |
o |
Otros |
a |
todas |
No utilizaremos permisos en números como 755 sino en caracteres como rwx. Veamos un ejemplo
Cambio de propiedad y grupo en Linux
Para cambiar la propiedad de un archivo/directorio, puede utilizar el siguiente comando:
chown user filename
En caso de que desee cambiar el usuario y el grupo de un archivo o directorio, utilice el comando
chown user:group filename
Veamos esto en acción
En caso de que desee cambiar únicamente el propietario del grupo, use el comando
chgrp group_name filename
"chgrp' significa grupo de cambio.
Consejo
- El archivo /etc/group contiene todos los grupos definidos en el sistema
- Puede utilizar el comando "grupos" para encontrar todos los grupos de los que es miembro.
- Puede utilizar el comando newgrp para trabajar como miembro de un grupo que no sea su grupo predeterminado.
- No puede haber 2 grupos que posean el mismo archivo.
- No tienes grupos anidados en Linux. Un grupo no puede ser subgrupo de otro.
- x- Ejecutar un directorio significa tener permitido "ingresar" un directorio y obtener posible acceso a subdirectorios
- Hay otros permisos que puedes configurar en Archivos y Directorios que se tratarán en un tutorial avanzado posterior.
Resumen:
- Linux, al ser un sistema multiusuario, utiliza permisos y propiedad por motivos de seguridad.
- Hay tres tipos de usuarios en un sistema Linux: Usuario, Grupo y Otros.
- Linux divide los permisos de archivos en lectura, escritura y ejecución indicados por r, w y x.
- Los permisos de un archivo se pueden cambiar mediante el comando "chmod", que se puede dividir en modo absoluto y simbólico.
- El comando 'chown' puede cambiar la propiedad de un archivo o directorio. Utilice los siguientes comandos: chown user file o chown user:group file
- El comando 'chgrp' puede cambiar la propiedad del grupo nombre de archivo del grupo chrgrp
- ¿Qué significa x – ejecutar un directorio? R: Tener permiso para "ingresar" a un directorio y obtener posible acceso a subdirectorios.