Si el bit suid no tiene efecto en los directorios y el bit adhesivo no tiene efecto en los archivos, ¿por qué no se combinan en un bit?


18

¿Esto ahorraría un bit por archivo, o hay algún relleno necesario que deba usarse de todos modos? E incluso si hay relleno, ¿por qué no combinarlos y utilizar el bit extra para una nueva función?


3
La parte adhesiva hace algo en los archivos ordinarios. Consulte en.wikipedia.org/wiki/Sticky_bit para conocer la cantidad de formas en que se usa.
Joshua

@Joshua Eso es interesante, y es un buen punto que en no-Linux * nixes el comportamiento varía. Pero tenía Linux en mente para esta pregunta. Sin embargo, me pregunto si alguien en un kernel de Linux con BSD amd y ls aún podría depender del bit de archivo fijo. Y supongo que varios programas de tierras de usuarios podrían verificarlo / actuar sobre él, aunque no conozco ninguno que lo haga.
Harry

Respuestas:


26

Por razones históricas. El bit adhesivo se usó originalmente para un propósito completamente diferente: si se configuró en un archivo ejecutable, le dijo al sistema operativo que retenga el segmento de texto en el intercambio. De ahí el nombre "Sticky Bit".


Gracias, pero ¿eso les impide seguir siendo "un poco" internamente? ¿O un ahorro de un bit no es lo suficientemente significativo en el nivel por archivo?
Harry

66
Un archivo ejecutable podría tener las cuatro combinaciones de suid y sticky.
Johan Myréen

Sí, de ahí la pregunta original. Tal vez mejor redactado, ¿por qué el nombre (o el uso anterior) del bit pegajoso tiene algo que ver con combinarlo con el bit suid hoy? ¿No podrían combinarse las funciones de ambos bits en un bit "adhesivo / suid", que funciona como suid cuando se configura en archivos pero es permanente cuando se configura en directorios?
Harry

17
Romperías la compatibilidad con versiones anteriores si cambias los bits. chmod 4755 fileestablece el bit suid y chmod 1755 direstablece el bit adhesivo. No queremos romper scripts antiguos solo por guardar un solo bit por archivo, ¿verdad? Por supuesto, internamente un sistema de archivos es libre de implementar su optimización, siempre que la interfaz externa permanezca igual.
Johan Myréen

66
@Johan Myréen: Y, por supuesto, en realidad no guardarías esa parte, se convertiría en una parte no utilizada en el campo de permiso byte / palabra.
jamesqf
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.