jaka jest różnica między chmod 777 i chmod 7777

7

Mam profesora, który zawsze nalega na pisanie chmod 7777, ale mnie tego nauczono chmod 777 była właściwa konwencja.

Wypróbowałem je w linii poleceń i chmod 777 something.txt plony

-rwxrwxrwx   1 home  staff    0 May  6 16:47 something.txt

i chmod 7777 something.txt plony

-rwsrwsrwt   1 home  staff    0 May  6 16:47 something.txt

Który zmienia pola wykonywalne na s, s i t. Rozumiem 777, ponieważ jest 111 111 111 binarny, więc po prostu włącza wszystkie pola, ale dlaczego miałbym używać 7777 i co robi inaczej?

Loourr
źródło
1
Ma to związek z sticky bit. Możesz sprawdzić en.wikipedia.org/wiki/Sticky_bit
fedorqui
4
I jako ostrzeżenie, są tylko bardzo konkretne sytuacje, z których musisz skorzystać. Dlaczego twój profesor normalnie by to ustawił bez wyjaśnienia, pyta o kwestie bezpieczeństwa.
Związane z: Jak działa lepki bit?
Scott

Odpowiedzi:

11

W 7777, pierwsze trzy bity to setuid, setgid, i sticky flagi. Powinny one być ustawione tylko w bardzo szczególnych okolicznościach. Masz rację 777 jest bardziej odpowiednim ustawieniem (jeśli chcesz, aby plik był zapisywalny na całym świecie) i wykonywalny na świecie).

I chyba że plik jest wykonywalnym programem lub skryptem lub katalogiem, zwykle nie powinieneś ustawiać x kawałki. Jednak nie ma w tym nic złego.

Barmar
źródło
Dobre wytłumaczenie.
ĆĦΔŇĐŘΔ ŇΔҜҜΔ
Co dokładnie robią te tagi? Kiedy chcę używać flag setuid, setgid i sticky? Czy używanie ich, gdy nie powinny być używane, powoduje problemy?
Aaron Franke
Mają różne znaczenia w zależności od tego, czy ustawiasz je w pliku lub katalogu, oraz czy plik jest wykonywalny, czy nie. To, czy powodują problemy, zależy od specyfiki. Przez większość czasu nie są potrzebne. Google, aby dowiedzieć się, co robią, nie zamierzam tutaj wyjaśniać wszystkich szczegółów.
Barmar
1

Nie ma powodu, aby rozsądny profesor nalegał na ustawianie setuid / gid i lepkich bitów, więc być może jesteś mylący 7777 i 0777.

Uprawnienia określone jako liczba ósemkowa, właściwą konwencją ich reprezentowania jest dodanie a 0. To tak jak wtedy 0x służy do rozróżnienia liczby szesnastkowej.

Zauważ, że chmod nie oczekuje, że uprawnienia będą wyrażone w postaci dziesiętnej lub szesnastkowej, więc ten ósemkowy prefiks jest opcjonalny.

jlliagre
źródło
1
Był profesorem fizyki, więc to mógł być problem
Loourr
@Loourr No cóż, bycie profesorem fizyki nie jest samo w sobie kwestią ;-) Myślę, że faktycznie masz na myśli, że profesor nie był informatykiem. Może to być przyczyną złej rady.
jlliagre
0

Lewą cyfrą jest cyfra setuid, setgid i stickybit. Pierwsze dwa ustawiają efektywne identyfikatory użytkownika i grupy użytkownika otwierającego plik. Nie wiem, co to jest stickybit.

jhunter_d
źródło
-1

Lepki bit jest używany do informowania systemu operacyjnego, aby utrzymywał plik w pamięci RAM w jak największym stopniu, aby zmniejszyć odczyty z dysku i zmniejszyć opóźnienia. Jest to stosowane do plików, które są często pozywane i potrzebne z dużą bezpośredniością. Niektóre systemy operacyjne i systemy oprogramowania ignorują je lub używają innych metod do osiągnięcia tego samego. Ale skąd pochodzi lepka nazwa (trzymaj ją w pamięci, gdy tylko jest to możliwe)

unhackable
źródło