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, discutiremos 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 son 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:
Solo “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 usando chmod
dominio. Agregaremos los permisos de «escritura» a todos los usuarios del grupo «johns» como se muestra a continuación.
Podemos ver los permisos actualizados para «shared-dir» como se muestra a continuación. La parte subrayada en amarillo muestra que al grupo «johns» se le han otorgado permisos de «escritura».
Adición de 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 del archivo son sinónimos del nombre de usuario.
Del mismo modo, «john2» también puede «escribir» en el directorio «shared-dir»
Hay cuatro archivos en «shared-dir» ahora.
¿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 se otorgó el permiso de «escritura» 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 la punta adhesiva
El sticky bit es un permiso especial que se puede configurar en un directorio que tiene permisos de «escritura» establecidos 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 eliminarlo.
chmod
comando con el +t
bandera se puede utilizar para establecer el bit adhesivo en un directorio.
El permiso actualizado se puede ver a continuación.
Ahora, si «john2» intenta eliminar el archivo «j1_file2.txt» que fue creado por «john1», esa operación no está permitida.
Si elimina el permiso de «ejecutar» para «otros», como se muestra a continuación:
la existencia de sticky bit en el directorio se representa con una «T» mayúscula en la parte «otros» de la cadena de permisos. El comportamiento del sticky bit en el directorio sigue siendo el mismo.
Variante del comando «chmod»
La forma numérica de chmod
El comando también se puede usar para establecer un bit fijo en un directorio.
dónde,
- n = 1, refiriéndose al sticky bit. 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 configurar el bit adhesivo en «dirección compartida», use el siguiente comando:
que produce el mismo resultado que usar +t
en los permisos predeterminados existentes.
El uso de sticky bit es bueno solo para directorios, no tendría sentido usarlo para archivos.