Cómo usar Sticky Bit para administrar archivos en directorios compartidos en Linux

Desde sus inicios, Linux se diseñó para admitir un entorno multiusuario. Con muchos usuarios y grupos en un sistema en funcionamiento, es bastante común encontrar directorios compartidos entre usuarios del mismo grupo y surgen problemas al compartir archivos en los directorios. En este artículo, analizaremos cómo puede hacer uso de bits adhesivos para ajustar el permiso de acceso a archivos en directorios compartidos.

A modo de ilustración, tenemos un sistema con tres usuarios: john1, john2 y john3, todos miembros del grupo común «johns».

Digamos que «john1» crea un nuevo directorio llamado «shared-dir» destinado a ser compartido entre todos los usuarios del grupo «johns».

Con el ls comando, podemos ver el permiso del «shared-dir», que se puede interpretar en la siguiente tabla:

permiso de carpeta de linux

Sólo «john1» puede leer el contenido del directorio y también escribir en el directorio. Como estamos trabajando con un directorio compartido, queremos que todos los usuarios del grupo puedan escribir en «shared-dir».

Para ello, modificaremos los permisos utilizando chmod mando. Agregaremos los permisos de «escritura» a todos los usuarios del grupo «johns» como se muestra a continuación.

conceder permiso de escritura de grupo para la carpeta

Podemos ver los permisos actualizados para «shared-dir» como se muestra a continuación. La parte subrayada en amarillo muestra que el grupo «johns» ha recibido permisos de «escritura».

carpeta con permiso de escritura de grupo

Agregar archivos al directorio compartido

Ahora «john1» agrega dos archivos (j1_file1.txt y j1_file2.txt) a «shared-dir»

agregar archivos al directorio compartido

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

agregar un segundo archivo al directorio compartido

Asimismo, «john2» también puede «escribir» en el directorio «shared-dir»

segundo usuario agregando archivo al directorio
tercer usuario agregando archivo al directorio

Ahora hay cuatro archivos en «shared-dir».

archivos en directorio compartido

¿Hay algún problema con la configuración actual?

El archivo «j1_file1.txt» fue creado por «john1» haciendo que «john1» sea el propietario del archivo. Ahora «john2» inicia sesión e intenta eliminar este archivo, y podrá hacerlo.

«John1» era el propietario del archivo, pero «john2» pudo eliminarlo porque el permiso de «escritura» 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?

Presentamos Sticky Bit

El bit adhesivo es un permiso especial que se puede establecer en un directorio que tiene permisos de «escritura» establecidos para el grupo con acceso a él. Este bit asegura que todos los miembros del grupo puedan escribir en el directorio, pero solo la persona que creó un archivo, que es el propietario del archivo, puede eliminarlo.

En relación :  Cómo extraer marcos de GIF en Linux

chmod comando con el +t La bandera se puede utilizar para establecer el bit de pegamento en un directorio.

establecer el bit pegajoso en el directorio

El permiso actualizado se puede ver a continuación.

permiso de carpeta con conjunto de bits adhesivos

Ahora, si «john2» intenta eliminar el archivo «j1_file2.txt» que fue creado por «john1», esa operación no está permitida.

eliminar archivo no permitido

Si elimina el permiso de «ejecución» para «otros», como se muestra a continuación:

eliminar el permiso ejecutable para otros

la existencia de sticky bit en el directorio está representada por una «T» mayúscula en la parte «otros» de la cadena de permisos. El comportamiento del bit pegajoso en el directorio sigue siendo el mismo.

permiso de archivo de carpeta sin permiso ejecutable

Variante del comando «chmod»

La forma numérica de chmod El comando también se puede usar para establecer un bit de pegamento en un directorio.

dónde,

  • n = 1, refiriéndose al bit pegajoso. Otros valores de «n» se refieren a otros permisos especiales.
  • x: permiso otorgado al propietario del archivo
  • y: permiso otorgado al grupo con acceso al archivo
  • z: permiso otorgado a otros

Para establecer sticky bit en «shared-dir», utilice el siguiente comando:

que produce el mismo resultado que usar +t en los permisos predeterminados existentes.

El uso de sticky bit es válido solo para directorios, no tendría sentido usarlo para archivos.