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)?

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 .


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

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.

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.