Jaka jest litera „t” na wyjściu „ls -ld / tmp”?

94

Po uruchomieniu polecenia  ls -ld /tmpwynik byłby następujący:

drwxrwxrwt 30 root root 20480 Mar 11 14:17 /tmp

Mam więc dwa główne pytania:

  • Jaki jest list tpo pozwoleniach?
  • O ile wiem, /tmpsłuży do tworzenia plików tymczasowych związanych z różnymi użytkownikami w systemie, więc dlaczego ma uprawnienia rwxrwxrwx(777)?

Wydaje mi się to złe. Proszę, potrzebuję twojej pomocy, aby zrozumieć, co się tutaj dzieje.

Społeczność
źródło
8
Przeczytaj artykuł w Wikipedii , jest to raczej lepsze niż odpowiedzi tutaj.
Gilles
1
Zobacz także: unix.stackexchange.com/q/79395/4784
Martin Thoma
OK Dlaczego więc, kiedy instaluję aktualizację lub nowy pakiet rpm z / tmp, czy lepki bit jest usuwany?

Odpowiedzi:

112

Więc co to jest lepki kawałek?

Lepki bit to bit uprawnień ustawiony w katalogu, który pozwala tylko właścicielowi pliku w tym katalogu, właścicielowi katalogu lub użytkownikowi root na usunięcie lub zmianę nazwy pliku. Żaden inny użytkownik nie ma wymaganych uprawnień do usunięcia pliku utworzonego przez innego użytkownika.

Jest to środek bezpieczeństwa, aby uniknąć usunięcia krytycznych folderów i ich zawartości (podkatalogów i plików), chociaż inni użytkownicy mają pełne uprawnienia.

Dlaczego /tmpmają tlepki bit?

/tmpKatalog może być używany przez różnych użytkowników systemu Linux do tworzenia plików tymczasowych. A co jeśli użytkownik usunie / zmieni nazwę pliku utworzonego przez innego użytkownika w tym katalogu?

Cóż, aby uniknąć tego rodzaju problemów, używana jest koncepcja lepkiego bitu. Dlatego 777podano a, ale zachowanie lepkiego kawałka nie jest złym pomysłem.

Jak mogę ustawić lepki bit dla katalogu?

Ustawię lepki bit w katalogu o nazwie testna pulpicie.

Symboliczny sposób ( treprezentuje lepki bit):

chmod o+t ~/Desktop/test

lub

chmod +t ~/Desktop/test

Sposób numeryczny / ósemkowy (1, lepki bit jako wartość 1 na pierwszej pozycji)

chmod 1757 ~/Desktop/test

Teraz przetestujmy wyniki:

ls -li ~/Desktop/test

1551793 drwxrwxrwt 45 hadi hadi 20485 Mar 11 14:35 ~/Desktop/test

Aby usunąć / usunąć lepki bit

chmod o-t ~/Desktop/test

Teraz przetestujmy wyniki:

ls -li ~/Desktop/test

1551793 drwxrwxrwx 45 hadi hadi 20485 Mar 11 14:35 ~/Desktop/test

Źródło: „Co to jest lepki bit i jak ustawić go w systemie Linux?” W The Linux Juggernaut

Maythux
źródło
13
To użycie lepkiego bitu dotyczy tylko katalogów, a nie plików. W odległej przeszłości jego znaczenie w plikach wykonywalnych polegało na zapisaniu segmentu tekstowego programu w celu zamiany zamiast odrzucania go, aby ponowne uruchomienie było szybsze, ale w dzisiejszych czasach nie ma znaczenia dla zwykłych plików.
psusi
jaki był segment tekstowy programu i jak utrzymanie go przyspieszy?
BluePython
@BluePython Segment „tekstowy” pliku wykonywalnego to część zawierająca cały kod maszynowy: rzeczywisty bit wykonywalny. Wspólne inne segmenty to „dane” dla danych statycznych i „bss” dla danych, które są zerowe (a zatem nie muszą być przechowywane w pliku wykonywalnym).
Miles Rout
1
czy jest jakaś różnica między „t” a „T” dla pozwolenia na katalog? ??? psusi
Afshin
1
@Ashshin: Ponieważ tukrywa xwskazanie, czy wszyscy użytkownicy mogą wykonać plik / katalog, potrzebujemy innego sposobu na wskazanie tego. Zazwyczaj każdy może to wykonać, w którym to przypadku dostajesz normalny t(zamiast x). Ale jeśli nie, to otrzymasz wielką literę T(zamiast a -). Źródło: Wikipedia.
Toby Bartels
25

Bit lepki to bit uprawnień ustawiony w pliku lub katalogu, który pozwala tylko właścicielowi pliku / katalogu lub użytkownikowi root na usunięcie lub zmianę nazwy pliku. Żaden inny użytkownik nie ma uprawnień do usuwania pliku utworzonego przez innego użytkownika.

Czasami zdarza się, że potrzebujesz katalogu Linux, z którego mogą korzystać wszyscy użytkownicy systemu Linux do tworzenia plików. Użytkownicy mogą tworzyć, usuwać lub zmieniać nazwy plików zgodnie z ich wygodą w tym katalogu.

Co teraz, jeśli użytkownik przypadkowo lub celowo usunie (lub zmieni nazwę) plik utworzony przez innego użytkownika w tym katalogu?

Cóż, aby uniknąć tego rodzaju problemów, używana jest koncepcja lepkiego bitu. Ponieważ do tego celu służy / tmp . Aby uniknąć powyższego scenariusza, / tmp używa lepkiego bitu.

Na przykład:

mkdir demo
chmod 777 demo

W tym folderze utworzyłem również dwa pliki z różnymi użytkownikami mającymi uprawnienia 777.

ls -ld demo
drwxrwxrwx 2 guru guru 4096 Mar 11 18:17 demo

ls -l demo
-rwxrwxrwx 1 abhi abhi    0 Mar 11 17:11 file1
-rwxrwxrwx 1 anshu anshu   0 Mar 11 18:15 file2

Teraz włącz to lepkie

 chmod +t demo/
 ls -ld demo
 drwxrwxrwt 2 guru guru 4096 Mar 11 18:17 demo

Co się stanie, jeśli jeden użytkownik (abhi) chce zmienić nazwę drugiego użytkownika (anshu)

mv /home/guru/demo/file2  /home/guru/demo/file3
mv: cannot move '/home/guru/demo/file2' to  '/home/guru/demo/file3': Operation not   permitted  

Pochodzenie lepkiego bitu

W Linuksie lepki bit ma zastosowanie opisane powyżej tylko w katalogach. Historycznie był używany do czegoś zupełnie innego w zwykłych plikach i stąd pochodzi nazwa.

Po uruchomieniu programu ładowanie programu do pamięci zajmuje dużo czasu, zanim użytkownik może zacząć z niego korzystać. Jeśli użytkownicy często korzystają z programu, na przykład edytora, opóźnienie w uruchomieniu było wówczas narzutem.

Aby poprawić to opóźnienie czasowe, wprowadzono lepki bit. System operacyjny sprawdził, czy jeśli bity lepkie w pliku wykonywalnym są WŁĄCZONE, wówczas segment tekstowy pliku wykonywalnego był przechowywany w przestrzeni wymiany. Ułatwiło to ponowne załadowanie pliku wykonywalnego do pamięci RAM po ponownym uruchomieniu programu, co minimalizuje opóźnienie czasowe.

Współczesne systemy, takie jak Linux, automatycznie zarządzają pamięcią podręczną plików wykonywalnych i innych plików i nie potrzebują do tego lepkiego bitu.

Źródło: „Linux Sticky Bit Concept wyjaśniany przykładami” w The Geek Stuff

g_p
źródło
2

Stickybit to metoda obejścia problemu, która nie pozwala na przypadkowe usunięcie udostępnionych katalogów. Gdy katalog ma stickybit, tylko właściciel lub root może go usunąć, nawet jeśli każdy użytkownik może uzyskać pełne inne uprawnienia.

/tmpjest najbardziej współdzielonym katalogiem między procesami i użytkownikami i dlatego zawiera stickybit, aby zapewnić, że żaden użytkownik nie może usunąć katalogu, nawet jeśli jest to uprawnienie 777, i musi tak być, aby umożliwić użytkownikom i procesom korzystanie z katalogu bez konfliktu uprawnień.


źródło