stringtranslate.com

poco pegajoso

En informática , el bit adhesivo es un indicador de derecho de acceso de propiedad del usuario que se puede asignar a archivos y directorios en sistemas tipo Unix .

Hay dos definiciones: una para archivos y otra para directorios.

Para los archivos, particularmente los ejecutables, el superusuario podría etiquetarlos para que se retengan en la memoria principal, incluso cuando finalice su necesidad, para minimizar el intercambio que se produciría cuando surja otra necesidad, y el archivo ahora debe recargarse desde una memoria secundaria relativamente lenta. [1] Esta función ha quedado obsoleta debido a la optimización del intercambio.

Para los directorios, cuando se establece el bit fijo de un directorio, el sistema de archivos trata los archivos en dichos directorios de una manera especial, de modo que solo el propietario del archivo, el propietario del directorio o el usuario raíz puedan cambiar el nombre o eliminar el archivo. Sin el bit adhesivo configurado, cualquier usuario con permisos de escritura y ejecución para el directorio puede cambiar el nombre o eliminar los archivos contenidos, independientemente del propietario del archivo. Normalmente, esto se configura en el /tmpdirectorio para evitar que los usuarios normales eliminen o muevan los archivos de otros usuarios.

La función moderna del bit adhesivo se refiere a directorios y protege los directorios y su contenido contra el secuestro de personas que no son propietarios; esto se encuentra en la mayoría de los sistemas modernos tipo Unix. Los archivos en un directorio compartido, como los /tmpque pertenecen a propietarios individuales, y los que no son propietarios no pueden eliminarlos, sobrescribirlos ni cambiarles el nombre.

Historia

El bit adhesivo se introdujo en la quinta edición de Unix (en 1974) para su uso con archivos puramente ejecutables . [2] Cuando se configuró, indicó al sistema operativo que retuviera el segmento de texto del programa en el espacio de intercambio después de que saliera el proceso . Esto acelera las ejecuciones posteriores al permitir que el kernel realice una única operación de mover el programa desde la memoria de intercambio a la memoria real. Por lo tanto, los programas de uso frecuente, como los editores, se cargarían notablemente más rápido. Un problema notable con los programas "pegajosos" era reemplazar el ejecutable (por ejemplo, durante la aplicación de parches ); para hacerlo era necesario eliminar el bit adhesivo del ejecutable, ejecutar el programa y salir para vaciar el caché, reemplazar el ejecutable binario y luego restaurar el bit adhesivo.

Posteriormente, este comportamiento pasó a ser operativo sólo en HP-UX y UnixWare . Solaris parece haber abandonado esto en 2005. [ cita necesaria ] La versión 4.4-Lite de BSD conservó el antiguo comportamiento de bits adhesivos, pero posteriormente se eliminó de OpenBSD (a partir de la versión 3.7) y FreeBSD (a partir de la versión 2.2.1). ). Ninguna versión de Linux ha admitido jamás este comportamiento tradicional; Linux realiza el almacenamiento en caché de los archivos ejecutables de la misma manera que todos los archivos, por lo que no es necesario volver a ejecutar el programa para vaciar el caché.

Uso

El uso más común del bit adhesivo es en directorios que residen dentro de sistemas de archivos para sistemas operativos tipo Unix . Cuando se establece el bit adhesivo de un directorio, el sistema de archivos trata los archivos en dichos directorios de una manera especial, de modo que solo el propietario del archivo, el propietario del directorio o la raíz puedan cambiar el nombre o eliminar el archivo. Sin el bit adhesivo configurado, cualquier usuario con permisos de escritura y ejecución para el directorio puede cambiar el nombre o eliminar los archivos contenidos, independientemente del propietario del archivo. Normalmente, esto se configura en el /tmpdirectorio para evitar que los usuarios normales eliminen o muevan los archivos de otros usuarios. Esta característica se introdujo en 4.3BSD en 1986 y hoy se encuentra en la mayoría de los sistemas modernos tipo Unix.

Además, Solaris (a partir de Solaris 2.5) define un comportamiento especial cuando el bit adhesivo se establece en archivos no ejecutables: el kernel no almacenará en caché esos archivos, cuando se acceda a ellos . Esto generalmente se configura en archivos de intercambio para evitar que el acceso al archivo borre datos más importantes del caché del sistema. También se utiliza ocasionalmente para pruebas de evaluación comparativa . [ cita necesaria ]

El montador automático también configura el bit adhesivo para indicar que un archivo aún no se ha montado. Esto permite que programas como ls ignoren archivos remotos desmontados.

Ejemplos

El bit adhesivo se puede configurar usando el comando chmod y se puede configurar usando su modo octal 1000 o mediante su símbolo t ( s ya lo usa el bit setuid ). Por ejemplo, para agregar el bit en el directorio /usr/local/tmp, se escribiría chmod +t /usr/local/tmp. O, para asegurarse de que el directorio tenga tmppermisos estándar, también se puede escribir chmod 1777 /usr/local/tmp.

Para borrarlo, use chmod -t /usr/local/tmpo chmod 0777 /usr/local/tmp(este último también restablecerá el tmpdirectorio a los permisos estándar).

En la notación de permisos del sistema de archivos simbólicos Unix , el bit adhesivo se representa con la letra t o T en el lugar del carácter final, dependiendo de si el bit de ejecución para la categoría otros está activado o desactivado, respectivamente. Por ejemplo, en Solaris 8, el /tmpdirectorio, que de forma predeterminada tiene tanto el bit de ejecución de los demás como el conjunto de bits fijos, se muestra como:

$ ls  -ld  /tmp drwxrwxrwt 4 root sys 485 10 de noviembre 06:01 /tmp

Si el bit adhesivo se establece en un archivo o directorio sin el bit de ejecución establecido para la categoría otros (no propietario de usuario y no propietario de grupo), se indica con una T mayúscula (reemplazando lo que de otro modo sería - ) :

# ls  -l prueba -rw-r--r-- 1 root anygroup 0 10 de noviembre 12:57 prueba # chmod +t prueba ; ls -l prueba -rw-r--rT 1 root anygroup 0 10 de noviembre 12:57 prueba      

Ver también

Referencias

  1. ^ Zintz, Walter (febrero de 1984). "La conexión Unix: ¿Qué es un bit adhesivo?". COPIA IMPRESA . pag. 130.
  2. ^ Steinhauser, Martín Oliver (2012). Simulación por Computadora en Física e Ingeniería . De Gruyter. ISBN 978-3-1102-5590-4.
  3. ^ "Copia archivada de la página de manual de chmod en AIX 5.2". Archivado desde el original el 18 de enero de 2005 . Consultado el 19 de enero de 2009 .
  4. ^ "Sinopsis: sección 2 de las páginas de manual: Llamadas al sistema". Docs.oracle.com. 2011-11-01 . Consultado el 10 de abril de 2014 .
  5. ^ "HPUX chmod[2]". Archivado desde el original el 20 de noviembre de 2007 . Consultado el 29 de febrero de 2008 .{{cite web}}: Mantenimiento CS1: bot: estado de la URL original desconocido ( enlace )
  6. ^ "chmod(1) - página del manual de Linux". Man7.org . Consultado el 10 de abril de 2014 .
  7. ^ "proc(5) - página del manual de Linux". Man7.org . Consultado el 4 de marzo de 2022 .
  8. ^ "chmod-FreeBSD". Nixdoc.net. 1993-06-04 . Consultado el 10 de abril de 2014 .
  9. ^ "chmod - IRIX/estándar/". Nixdoc.net . Consultado el 10 de abril de 2014 .
  10. ^ "Biblioteca para desarrolladores de Mac". Desarrollador.apple.com . Consultado el 10 de abril de 2014 .
  11. ^ "sticky.7 - Páginas del manual de NetBSD". Netbsd.gw.com. 2021-05-16 . Consultado el 16 de mayo de 2021 .
  12. ^ "Páginas del manual: adhesivas". Openbsd.org. 2014-02-14 . Consultado el 4 de febrero de 2018 .
  13. ^ "chmod(2)". Uw714doc.sco.com. 2004-04-25 . Consultado el 10 de abril de 2014 .

enlaces externos