Sticky bit

De Viquipèdia
Dreceres ràpides: navegació, cerca

En informàtica, el sticky bit o bit enganxós és una propietat dels permisos d'accés assignats a fitxers i directoris.

Història[modifica | modifica el codi]

El bit enganxós es va introduir en la cinquena edició de Unix (el 1974) per al seu ús en arxius executables purs. Quan aquest bit s'estableix actiu, el sistema operatiu es retenia el segment de codi en l'espai de memòria d'intercanvi després que el procés acabés la seva execució. Aquest fet n'accelera les execucions posteriors, ja que permet al nucli del sistema tornar a moure el programa a memòria amb menys operacions. Així, els programes d'ús més freqüent com editors es poden carregar més ràpid. El principal problema d'aquesta solució és el reemplaç del executable (per exemple, durant una actualització), per a poder-lo reemplaçar, s'ha de desactivar aquest bit, executar el programa i sortir-ne per netejar la memòria, i després restaurar el bit enganxós.

Avui dia, només mantenen aquest comportament els sistemes HP-UX i UnixWare. Solaris el va abandonar el 2005 així com BSD el va mantenir fins a convertir-se en OpenBSD i FreeBSD. No hi ha distribucions de Linux que suportin aquest antic comportament.

Ús[modifica | modifica el codi]

L'ús més comú avui en dia és en els directoris. Quan el bit enganxós és activat, només el propietari d'un element del directori, o bé el propietari del directori o el superusuari (root) poden canviar el nom, modificar o eliminar el fitxer. Sense el bit enganxós, qualsevol usuari amb permisos d'escriptura i execució per al directori en pot modificar o eliminar qualsevol fitxer contingut, independentment del seu propietari. Normalment, aquest bit enganxós es troba el /tmp per evitar que usuaris ordinaris puguin modificar fitxers d'altres usuaris. Aquesta funcionalitat va ser introduïda en BSD 4.3 el 1986 i avui en dia es troba estès per una àmplia majoria del sistemes Unix moderns.

Exemples[modifica | modifica el codi]

El bit enganxós s'estableix mitjançant la comanda chmod indicant com a paràmetre el símbol t (el símbol natural s ja estava utilitzat pel bit que indica els permisos que pren el procés quan s'executa el fitxer) o també en mode octal el valor 1000.

Per exemple, per activar aquest bit en un directori com /usr/local/tmp es pot usar la comanda:

$ chmod +t /usr/local/tmp

o també utilitzant el mode octal:

$ chmod 1777 /usr/local/tmp

Hem de tenir en compte que en el segon exemple, el mode octal, estableix també la resta de permisos indicats amb els números 7.

Un altre exemple per realitzar l'operació contraria de desactivar aquest bit, la comanda seria:

$ chmod -t /usr/local/tmp

o be, en mode octal:

$ chmod 0777 /usr/local/tmp

En aquest cas d'utilitzar la fórmula numèrica, el 0 seria opcional i també hem de tenir en compte que estarem establint la resta de permisos.

Vegeu també[modifica | modifica el codi]

  • chmod: comanda per modificar els permisos d'accés a fitxers

Enllaços externs[modifica | modifica el codi]