Jak wyczyścić uprawnienia „s” do katalogu w systemie Linux?

24

Mam katalog, który pokazuje się z maską uprawnień drwsrwsr-x. Kiedy próbuję zresetować uprawnienia do 755S nadal pozostaje.

Co to jest „s” i dlaczego nie mogę zmienić uprawnień z powrotem na 775 ( drwxrwxr-x)?

Matt Elhotiby
źródło

Odpowiedzi:

25

W pozycji „wykonaj” w kolumnie użytkownika i grupy widoczne są bity SetUID (Ustaw identyfikator użytkownika przy wykonywaniu) i SetGID (Ustaw identyfikator grupy przy wykonaniu).

Uprawnienia do plików uniksowych są w rzeczywistości 4-cyfrową liczbą ósemkową SUGO

  • S kontroluje bity SetUID (4), SetGID (2) i „Sticky” (1)
  • U kontroluje bity Read (4) / Write (2) / Execute (1) dla właściciela pliku
  • G kontroluje bity odczytu / zapisu / wykonania dla grupy plików
  • O kontroluje bity odczytu / zapisu / wykonywania dla wszystkich innych.

Możesz usunąć bity setuid ze swojego katalogu za pomocą chmod ug-s directory, lubchmod 0755 directory

Aby uzyskać więcej informacji, zobacz stronę podręcznika użytkownika chmodi tę stronę Wikipedii na temat bitu SetUID .

Hrvoje Špoljar
źródło
To jest „sgid” (bez „u”).
Wstrzymano do odwołania.
„co to jest drwsrwsrwx?” <- sprawdź ponownie
Hrvoje Špoljar
6
chmod 0755czy nie skasować bit setuid, a przynajmniej nie na Linuksie. Obecnie testuję na innych systemach.
FUZxxl
1
POSIX mówi, że jego implementacja jest zdefiniowana dla typów plików innych niż zwykłe pliki, czy chmodw trybie ósemkowym czyści bity setuid, setgid i vtx.
FUZxxl
2
Aby wyczyścić bit setuid w katalogu w systemie Linux, użyj chmod 00755; zobacz unix.stackexchange.com/q/393531/46851
Roger Lipscombe
23

setuid i setgid

setuid i setgid (odpowiednio: ustaw identyfikator użytkownika podczas wykonywania i ustaw identyfikator grupy po wykonaniu) są flagami praw dostępu w systemie Unix, które pozwalają użytkownikom uruchamiać plik wykonywalny z uprawnieniami właściciela lub grupy pliku wykonywalnego. Są często używane, aby umożliwić użytkownikom systemu komputerowego uruchamianie programów z tymczasowo podwyższonymi uprawnieniami w celu wykonania określonego zadania. Choć podane uprawnienia identyfikatora użytkownika lub identyfikatora grupy nie zawsze są podwyższone, przynajmniej są określone.

Aby usunąć bity setuid i setgid numerycznie, musisz poprzedzić wzorzec bitowy znakiem 0(np .: 0775staje się 00775).

Uruchom, aby usunąć setuid i setgid:

chmod 00775 path

lub

chmod a-st path
ooshro
źródło
Nie ma go w katalogu
Hrvoje Špoljar
1
katalog jest także plikiem w systemie plików unix, co według Ooshro jest całkowicie poprawne
lynxman
tak, to wszystko plik, ale opis nie pasuje, ponieważ nie wykonujesz czegoś, co wygląda jak drwxrwxr-x: |
Hrvoje Špoljar
W unixie i-węzeł uzyskuje uprawnienia.
Chris
2
GNU chmod nie usuwa bajtów setuid i setgid w katalogach, gdy uruchamiasz je w trybie ósemkowym. POSIX pozwala na to zachowanie.
FUZxxl
2

Dodanie do odpowiedzi ooshro ...

Jeśli użyjesz uprawnień suid lub sgid do katalogu, wszystkie pliki utworzone w tym katalogu będą miały tego samego właściciela (jeśli suid) lub grupę (sgid) co dany katalog.

Używam tego do mojego domowego udziału w Sambie. Katalog podstawowy jest własnością użytkownika nobody i group olympia, a uprawnienia to 2770. Więc musisz być w grupie olympia, aby czytać lub pisać cokolwiek poniżej tego katalogu, i upewni się, że olympia jest właścicielem grupy wszystkiego poniżej . Mam również skonfigurowaną Sambę, aby używała dirmask 2770 i maski plików 660, aby zachować poprawność uprawnień aż do końca drzewa.

baumgart
źródło