Las secciones 6 y 7 son los nombres del propietario y del grupo, respectivamente.
El desglose de eso es:4+2+1=7; 4+1=5; y 4+1=5.
Si quisiéramos asignar leer y escribir al propietario del archivo pero solo leer para los miembros del grupo y todos los demás usuarios, podríamos usar chmod de la siguiente manera:
$ chmod 644 foo_file
En los ejemplos a continuación, usamos notación simbólica en diferentes agrupaciones. Tenga en cuenta las letras u , g , y o representar a usuario , grupo y otros . Usamos u , g , y o junto con + , - , o = para agregar, eliminar o establecer bits de permiso.
Para agregar el ejecutar bit al conjunto de permisos de propiedad:
$ chmod u+x foo_file
Para eliminar leer , escribir y ejecutar de miembros del grupo:
$ chmod g-rwx foo_file
Para configurar la propiedad para que todos los demás usuarios lean y escribir :
$ chmod o=rw
Los bits especiales:establecer UID, establecer GID y sticky bits
Además de los permisos estándar, existen algunos bits de permisos especiales que tienen algunos beneficios útiles.
Establecer ID de usuario (suid)
Cuando suicidio se establece en un archivo, una operación se ejecuta como el propietario del archivo, no como el usuario que ejecuta el archivo. Un buen ejemplo de esto es la contraseña dominio. Necesita el suid bit que se establecerá para que el cambio de una contraseña se ejecute con permisos de root.
$ ls -l /bin/passwd
-rwsr-xr-x. 1 root root 27832 Jun 10 2014 /bin/passwd
Un ejemplo de configuración de suid bit sería:
$ chmod u+s /bin/foo_file_name
Establecer ID de grupo (sgid)
El sgid bit es similar al suid bit en el sentido de que las operaciones se realizan bajo la propiedad del grupo del directorio en lugar de que el usuario ejecute el comando.
Un ejemplo del uso de sgid sería si varios usuarios estuvieran trabajando en el mismo directorio, y cada archivo creado en el directorio necesita tener los mismos permisos de grupo. El siguiente ejemplo crea un directorio llamado collab_dir , establece el sgid bit y cambia la propiedad del grupo a webdev .
$ mkdir collab_dir
$ chmod g+s collab_dir
$ chown :webdev collab_dir
Ahora cualquier archivo creado en el directorio tendrá la propiedad de grupo de webdev en lugar del usuario que creó el archivo.
$ cd collab_dir
$ touch file-sgid
$ ls -lah file-sgid
-rw-r--r--. 1 root webdev 0 Jun 12 06:04 file-sgid
La parte "pegajosa"
Más recursos de Linux
- Hoja de trucos de los comandos de Linux
- Hoja de trucos de comandos avanzados de Linux
- Curso en línea gratuito:Descripción general técnica de RHEL
- Hoja de trucos de red de Linux
- Hoja de trucos de SELinux
- Hoja de trucos de los comandos comunes de Linux
- ¿Qué son los contenedores de Linux?
- Nuestros últimos artículos sobre Linux
El bit adhesivo indica que solo el propietario de un archivo puede eliminarlo, incluso si los permisos del grupo lo permitieran. Esta configuración suele tener más sentido en un directorio común o colaborativo como /tmp . En el siguiente ejemplo, la t en el ejecutar columna de todos los demás el conjunto de permisos indica que se ha aplicado el sticky bit.
$ ls -ld /tmp
drwxrwxrwt. 8 root root 4096 Jun 12 06:07 /tmp/
Tenga en cuenta que esto no evita que alguien edite el archivo; simplemente evita que eliminen el contenido de un directorio.
Configuramos el sticky bit con:
$ chmod o+t foo_dir
Por su cuenta, intente configurar el sticky bit en un directorio y otorgue permisos de grupo completo para que varios usuarios puedan leer, escribir y ejecutar en el directorio porque están en el mismo grupo.
A partir de ahí, cree archivos como cada usuario y luego intente eliminarlos como el otro.
Si todo está configurado correctamente, un usuario no debería poder eliminar usuarios del otro usuario.
Tenga en cuenta que cada uno de estos bits también se puede establecer en formato octal con SUID=4, SGID=2 y Sticky=1.
$ chmod 4744
$ chmod 2644
$ chmod 1755
¿Mayúsculas o minúsculas?
Si está configurando los bits especiales y ve una S mayúscula o T en lugar de minúsculas (como hemos visto hasta este punto), es porque el bit de ejecución subyacente no está presente. Para demostrarlo, el siguiente ejemplo crea un archivo con el sticky bit establecido. Luego podemos agregar/eliminar el bit de ejecución para demostrar el cambio de caso.
$ touch file cap-ST-demo
$ chmod 1755 cap-ST-demo
$ ls -l cap-ST-demo
-rwxr-xr-t. 1 root root 0 Jun 12 06:16 cap-ST-demo
$ chmod o-x cap-X-demo
$ ls -l cap-X-demo
-rwxr-xr-T. 1 root root 0 Jun 12 06:16 cap-ST-demo
Configurando el bit de ejecución condicionalmente
Hasta este punto, hemos configurado el ejecutar bit usando una x minúscula , que lo establece sin hacer preguntas. Tenemos otra opción:usar una X mayúscula en lugar de minúsculas establecerá ejecutar bit solo si ya está presente en algún lugar del grupo de permisos. Este puede ser un concepto difícil de explicar, pero la demostración a continuación ayudará a ilustrarlo. Observe aquí que después de intentar agregar ejecutar bit a los privilegios del grupo, no se aplica.
$ touch cap-X-file
$ ls -l cap-X-file
-rw-r--r--. 1 root root 0 Jun 12 06:31 cap-X-file
$ chmod g+X cap-X-file
$ ls -l cap-X-file
-rw-r--r--. 1 root root 0 Jun 12 06:31 cap-X-file
En este ejemplo similar, agregamos primero el bit de ejecución a los permisos del grupo usando la x minúscula. y luego usa la X mayúscula para agregar permisos para todos los demás usuarios. Esta vez, la X mayúscula establece los permisos.
$ touch cap-X-file
$ ls -l cap-X-file
-rw-r--r--. 1 root root 0 Jun 12 06:31 cap-X-file
$ chmod g+x cap-X-file
$ ls -l cap-X-file
-rw-r-xr--. 1 root root 0 Jun 12 06:31 cap-X-file
$ chmod g+x cap-X-file
$ chmod o+X cap-X-file
ls -l cap-X-file
-rw-r-xr-x. 1 root root 0 Jun 12 06:31 cap-X-file
Comprensión de umask
La máscara enmascara (o "bloquea") bits del conjunto de permisos predeterminado para definir permisos para un archivo o directorio. Por ejemplo, un 2 en umask la salida indica que está bloqueando la escritura bit de un archivo, al menos por defecto.
Uso de la máscara El comando sin argumentos nos permite ver el umask actual entorno. Hay cuatro columnas:la primera está reservada para el suid especial, sgid o sticky bit, y las tres restantes representan el propietario, el grupo y otros permisos.
$ umask
0022
Para entender lo que esto significa, podemos ejecutar umask con una -S (como se muestra a continuación) para obtener el resultado de enmascarar los bits. Por ejemplo, debido al 2 valor en la tercera columna, el escribir bit está enmascarado del grupo y otras secciones; solo leer y ejecutar se pueden asignar para esos.
$ umask -S
u=rwx,g=rx,o=rx
Para ver cuál es el conjunto de permisos predeterminado para archivos y directorios, configuremos nuestro umask a todos ceros. Esto significa que no estamos enmascarando ningún bit cuando creamos un archivo.
$ umask 000
$ umask -S
u=rwx,g=rwx,o=rwx
$ touch file-umask-000
$ ls -l file-umask-000
-rw-rw-rw-. 1 root root 0 Jul 17 22:03 file-umask-000
Ahora, cuando creamos un archivo, vemos que los permisos predeterminados son leer (4) y escribir (2) para todas las secciones, lo que equivaldría a 666 en representación octal.
Podemos hacer lo mismo para un directorio y ver que sus permisos predeterminados son 777. Necesitamos ejecutar bit en directorios para que podamos recorrerlos.
$ mkdir dir-umask-000
$ ls -ld dir-umask-000
drwxrwxrwx. 2 root root 4096 Jul 17 22:03 dir-umask-000/
Conclusión
Hay muchas otras formas en que un administrador puede controlar el acceso a los archivos en un sistema. Estos permisos son básicos para Linux y podemos construir sobre estos aspectos fundamentales. Si su trabajo lo lleva a FACL o SELinux, verá que también se basan en estas primeras reglas de acceso a archivos.