Desde su inicio, Linux fue hecho a medida para soportar un entorno multiusuario. Con muchos usuarios y grupos en un sistema que funciona, es bastante común encontrar directorios que se comparten entre usuarios del mismo grupo, y surgen problemas al compartir archivos en los directorios. En este artículo, discutiremos cómo usar bits fijos para ajustar los permisos de acceso para archivos en directorios compartidos.
A modo de ilustración, tenemos un sistema con tres usuarios: john1, john2 y john3, todos son miembros del grupo conjunto "johns"
Digamos que "john1" crea un nuevo directorio llamado "directorio-compartido" para ser compartido entre todos los usuarios del grupo "johns".
Con el comando ls podemos ver el estado de "directorio-compartido", que se puede interpretar en la siguiente tabla:

Solo "john1" puede leer el contenido del directorio y también escribir en el directorio. Como trabajamos con un directorio compartido, queremos que todos los usuarios del grupo puedan escribir en "directorio-compartido".
Para esto cambiaremos los permisos con el comando chmod. Agregamos permisos de "escritura" para todos los usuarios del grupo "johns" que se muestra a continuación.

Podemos ver los permisos actualizados para "directorio-compartido" que se muestran a continuación. La parte resaltada en amarillo muestra que el grupo "johns" ha recibido permisos de "escritura".

Agregar archivos al directorio compartido
Ahora "john1" agrega dos archivos (j1_file1.txt y j1_file2.txt) a "shared-dir"

Para facilitar la comprensión, los dos primeros caracteres del nombre de archivo son sinónimos del nombre de usuario.

Del mismo modo, "john2" también puede "escribir" en el directorio "directorio-compartido"


Hay cuatro archivos en "dir-compartido" ahora.

¿Hay algún problema con la instalación actual?
El archivo "j1_file1.txt" fue creado por "john1" que hace que "john1" sea el propietario del archivo. Ahora "john2" inicia sesión e intenta eliminar este archivo, y él podrá hacerlo.
"John1" era el propietario del archivo, pero "john2" pudo eliminarlo porque el estado "escribir" se otorgó a todos los miembros del grupo "johns".
Este escenario no es ideal. Queremos que todos los usuarios puedan escribir en el directorio, pero solo el propietario del archivo debe poder eliminar un archivo. ¿Cómo se puede lograr esto?
Te presentamos Sticky Bit
El bit fijo es un privilegio especial que se puede establecer en un directorio que tiene permisos de "escritura" para el grupo con acceso a él. Este bit garantiza que todos los miembros del grupo puedan escribir en el directorio, pero solo la persona que creó un archivo, es decir, el propietario del archivo, puede eliminar el archivo.
El comando chmod con el indicador + t se puede usar para establecer el bit fijo en un directorio.

La autorización actualizada se puede ver a continuación.

Si "john2" ahora intenta eliminar el archivo "j1_file2.txt" creado por "john1", esa operación no está permitida.

Si elimina el permiso "ejecutar" para "otro" como se muestra a continuación:

la presencia de un bit fijo en el directorio está representada por una letra mayúscula "T" en la parte "otra" de la cadena de estado. El comportamiento del bit fijo en el directorio sigue siendo el mismo.

Variación del comando "chmod"
La forma numérica del comando chmod también se puede usar para establecer un bit fijo en un directorio.
era,
- n = 1, con referencia a la pieza adhesiva. Otros valores de "n" se refieren a otros permisos especiales.
- x: se concede permiso al propietario del archivo
- y: se otorga permiso para agrupar con acceso al archivo
- z: se concede permiso a otros
Para poner un bit fijo en "dir-compartido", use el siguiente comando:
dando el mismo resultado que usar + t en los permisos estándar existentes.
El uso de bit sticky solo es bueno para directorios, no tendría sentido usarlo para archivos.
¿Es útil este artículo?