Jeśli bit suid nie ma wpływu na katalogi, a bit lepki nie ma wpływu na pliki, dlaczego nie są one łączone w jeden bit?


18

Czy zaoszczędziłoby to jeden bit na plik, czy też konieczne jest wypełnienie, którego i tak należy użyć? A nawet jeśli jest padding, dlaczego nie połączyć ich i wykorzystać dodatkowy bit do nowej funkcji?


3
Lepki bit działa na zwykłych plikach. Zobacz en.wikipedia.org/wiki/Sticky_bit, aby dowiedzieć się, ile sposobów jest on używany.
Joshua

@Joshua To ciekawe i dobrze, że w przypadku nie-Linuksa * zachowanie jest różne. Ale miałem na myśli Linuksa na to pytanie. Zastanawiam się jednak, czy ktoś na jądrze Linuksa z BSD amd i ls może nadal polegać na lepkim bicie pliku? I wydaje mi się, że różne programy użytkowe mogłyby sprawdzić / zareagować, nawet jeśli nie znam żadnych popularnych programów, które by to zrobiły.
Harry

Odpowiedzi:


26

Z przyczyn historycznych. Bit lepki był pierwotnie używany w zupełnie innym celu: jeśli został ustawiony w pliku wykonywalnym, powiedział systemowi operacyjnemu, aby zachował segment tekstowy podczas wymiany. Stąd nazwa „Sticky Bit”.


Dziękuję, ale czy to wyklucza, że ​​nadal są wewnętrznie „odrobinę”? A może jednobitowe oszczędności po prostu nie są wystarczające na poziomie pliku?
Harry

6
Plik wykonywalny może mieć wszystkie cztery kombinacje suid i lepki.
Johan Myréen

Tak, stąd pierwotne pytanie. Być może lepiej sformułowane, dlaczego nazwa (lub wcześniejsze użycie) lepkiego bitu ma coś wspólnego z połączeniem go dzisiaj z bitem suid? Czy funkcje obu bitów nie mogą zostać połączone w jeden bit „lepki / suid”, który działa jako suid, gdy jest ustawiony na plikach, ale jest lepki, gdy jest ustawiony na katalogach?
Harry,

17
Zerwalibyśmy kompatybilność wsteczną, jeśli przesunęliśmy bity. chmod 4755 fileustawia bit suid i chmod 1755 dirustawia bit lepki. Nie chcemy łamać starych skryptów, aby zaoszczędzić jeden bit na plik, prawda? Oczywiście wewnętrznie system plików może wdrożyć optymalizację, o ile interfejs zewnętrzny pozostaje taki sam.
Johan Myréen

6
@Johan Myréen: I oczywiście nie zapisałbyś tego bitu, stałby się on po prostu nieużywanym bitem w polu zezwolenia na bajty / słowa.
jamesqf
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.