Cambiar el permiso de carpeta y directorios en Linux/Unix
- Propiedad de archivos en un sistema Unix/Linux
- Ver permisos de archivos en Linux
- Cambiar permisos de archivo en un sistema Unix/Linux
- Cambio de grupos y propietario en Linux
- Cambiar el comando de propiedad en Linux
-
Usar el
chmod
en Modo Absoluto en Linux
El sistema de permisos de archivos es uno de los elementos de seguridad esenciales del sistema operativo Linux.
Estas características nos permiten ajustar los permisos de archivo y los modos de acceso. Proporcionamos permisos basados en los permisos adecuados para evitar posibles vulnerabilidades cuando un usuario no tiene el acceso adecuado a archivos y carpetas.
Propiedad de archivos en un sistema Unix/Linux
En un sistema Unix/Linux, hay tres tipos de propiedad de archivos y directorios. El propietario asignado del archivo tiene la autoridad para modificarlo en función de los permisos que recibe.
- Permiso del propietario: los permisos del propietario del archivo especifican qué funciones puede realizar el propietario del archivo. Dado que el usuario que crea un archivo se convierte en su propietario, un usuario también se conoce como propietario.
- Permisos por grupo: los permisos de un grupo determinan qué actividades puede realizar un usuario en un archivo si es miembro de ese grupo.
- Permisos adicionales: los permisos de otros usuarios definen qué acciones pueden realizar con el archivo.
Cada archivo tenía tres opciones de acceso al principio. Son los siguientes:
- El
Read (r)
: Te permite recuperar el contenido del archivo pero no escribirlo. Le permitirá recibir una lista de archivos y directorios que se encuentran en un directorio. - La
Write (w)
: Le permite agregar nuevos datos a los archivos o alterar los existentes, así como crear y modificar archivos y directorios. - El
Execute (x)
: Si un programa no tiene la bandera de ejecución, no se puede ejecutar. Esta propiedad se establece para todos los programas y scripts. El sistema lo usa para determinar si el archivo debe o no iniciarse como un programa.
Ver permisos de archivos en Linux
Por supuesto, puede usar un administrador de archivos en Linux para buscar permisos de archivos. Todos admiten esta funcionalidad, pero recibirá información parcial de esta manera.
Use el comando ls
con el argumento -l
para obtener detalles completos sobre todas las banderas. Se mostrarán todos los archivos en el directorio, junto con sus propiedades y bits.
Ejecute el siguiente comando en la carpeta donde se almacenan los archivos para averiguar los permisos en un archivo de Linux:
$ ls -l
Creé una carpeta y dos archivos, test
y testfile
dentro de ella.
Producción :
total 0
-rw-rw-r-- 1 user user 0 Jan 14 01:00 test
-rw-rw-r-- 1 user user 0 Jan 14 01:00 testfile
La primera columna indica los distintos modos de acceso o los permisos asociados a un archivo o directorio. Luego hay grupos de derechos, primero para el propietario, luego para el grupo y todos los demás.
Echemos un vistazo más de cerca a lo que significan los valores condicionales de las banderas de permiso:
---
- ningún derecho en absoluto;--x
- solo se permite la ejecución de archivos, como un programa, pero no cambiar ni leer;-w-
- solo se permite escribir y modificar el archivo;-wx
- permite la modificación y ejecución, pero en el caso de un directorio, no puede ver su contenido;r--
- derechos de solo lectura;rx
- solo lectura y ejecución, sin acceso de escritura;rw-
- permisos de lectura y escritura, pero sin ejecución;rwx
- todos los derechos;--s
- Cuando se establece el bitSUID
oSGID
, en el campo se muestra elSUID
del propietario, mientras que en el campo se muestra elSGID
del grupo;--t
- Sticky-bit está configurado, lo que significa que los usuarios no pueden eliminar este archivo.
Cambiar permisos de archivo en un sistema Unix/Linux
El chmod
es un comando de cambio de modo que cambia los permisos de un archivo o directorio. Las dos formas de usar chmod
son los modos simbólico y absoluto.
Usa el chmod
en Modo Simbólico
El modo simbólico es el enfoque más sencillo para que un alumno ajuste los permisos de archivos o directorios.
Con los operadores de la siguiente tabla, puede agregar, eliminar o especificar el conjunto de permisos que desee con permisos simbólicos.
operador chmod |
descripción |
---|---|
+ |
Los permisos especificados se agregan a un archivo o directorio. |
- |
Elimina los permisos especificados de un archivo o directorio. |
= |
Establece el permiso para los usuarios especificados. |
Veamos un ejemplo. Cuando ejecute ls -l
en la prueba, verá que los permisos son los siguientes:
$ ls -l test
Producción :
-rw-rw-r-- 1 user user 0 Jan 14 01:00 test
Luego ejecute cada uno de los comandos chmod
de muestra de la tabla anterior en la prueba, seguido de ls -l para ver los cambios de permisos.
$ chmod o+wx test
$ ls -l test
Aquí, o
denota otros usuarios, w
escribe y x
ejecuta. +
se usa para agregar permisos específicos a un archivo de test
.
Producción :
-rw-rw-rwx 1 user user 0 Jan 14 01:00 test
Podemos ver las diferencias en las dos salidas anteriores. -rw-rw-r--
se cambia por -rw-rw-rwx
. El comando anterior agregó permisos rw
a otros usuarios.
Cambio de grupos y propietario en Linux
Cuando crean una cuenta en Unix, cada usuario recibe una identificación de propietario y una identificación de grupo. Todos los permisos anteriores también se asignan según el Propietario y el Grupo.
Hay principalmente dos comandos para cambiar los grupos y propietarios.
chown
: El comandochown
, que significachange owner
, se utiliza para cambiar el propietario de un archivo.chgrp
: El comandochgrp
, que significachange group
, se utiliza para cambiar el grupo de un archivo.
Los grupos de permisos utilizados son:
- u – Propietario
- g – Grupo
- o – Otros
- a – Todos los usuarios
Cambiar el comando de propiedad en Linux
El comando chown
se utiliza para cambiar la propiedad de un archivo.
La siguiente es la sintaxis básica:
$ chown [name] [filename]
El nombre de un usuario del sistema o la identificación de usuario (UID) de un usuario del sistema se puede utilizar como el valor del usuario.
Del mismo modo, para cambiar el propietario del grupo del archivo:
$ chgrp [group_name] [filename]
Usar el chmod
en Modo Absoluto en Linux
Los permisos de archivo también se pueden cambiar en código numérico. Los códigos numéricos equivalentes para el modo de acceso son los siguientes:
Números | Modo de acceso |
---|---|
0 | --- |
1 | -x |
2 | -w- |
3 | -wx |
4 | r- |
5 | r-x |
6 | rw- |
7 | rwx |
Por ejemplo, chmod 711 filename
otorga al propietario todos los derechos y a todos los demás usuarios solo el derecho de ejecución.
Veamos los permisos del archivo testfile
.
$ ls -l testfile
Producción :
-rw-rw-r-- 1 user user 0 Jan 14 01:00 testfile
Ahora, usando código numérico con chmod
.
$ chmod 711 testfile
$ ls -l testfile
Producción :
-rwx--x--x 1 user user 0 Jan 14 01:00 testfile
Como se ve en la salida, se cambia el permiso del archivo.