Co właściwie oznacza GID?
Wyszukałem go w Google i oto co linux.about.com powiedział:
Numer identyfikacyjny grupy dla procesu. Prawidłowe numery grup są podane w
/etc/group
oraz w polu GID pliku/etc/passwd
. Kiedy proces jest uruchamiany, jego GID jest ustawiany na GID jego procesu nadrzędnego.
- Ale co to oznacza?
Uprawnienia, które mam do mojego folderu, to obecnie 0755
Rozumiem, że jeśli ustawię identyfikator UID dla właściciela, będzie to 4755
A jeśli ustawię GID grupy, będzie to 2755
Jeśli Ustawiłem Sticky Bit dla innych, będzie to 1755
- Czy ustawienie tych uprawnień jest w ogóle ważne?
Odpowiedź
Każdy proces w systemie podobnym do UNIX, tak jak każdy plik, ma właściciela (użytkownik, prawdziwy lub systemowy „pseudo -user ”, na przykład daemon
, bin
, man
itp.) i grupa właściciel. Właścicielem grupy plików użytkownika jest zazwyczaj jego główna grupa. Podobnie, wszelkie uruchamiane procesy są zazwyczaj własnością Twojego identyfikatora użytkownika i identyfikatora grupy podstawowej.
Czasami jednak konieczne jest posiadanie podwyższonych uprawnień do uruchamiania niektórych poleceń, ale nie jest pożądane nadawanie pełnych uprawnień administracyjnych. Na przykład polecenie passwd
wymaga dostępu do systemu haseł w tle, aby zaktualizować hasło. Oczywiście nie chcesz nadawać każdemu użytkownikowi uprawnień roota, tylko po to, aby mogli zresetować swoje hasło – to niewątpliwie doprowadziłoby do chaosu! Zamiast tego musi istnieć inny sposób tymczasowego przyznania użytkownikom podwyższonych uprawnień do wykonywania określonych zadań. Do tego służą bity SETUID i SETGID. Jest to sposób na poinformowanie jądra, aby tymczasowo podniósł uprawnienia użytkownika na czas wykonywania zaznaczonego polecenia. Plik binarny SETUID zostanie wykonany z uprawnieniami właściciela pliku wykonywalnego (zwykle root
), a plik binarny SETGID z uprawnieniami grupowymi właściciela pliku wykonywalnego plik. W przypadku polecenia passwd
, które należy do root
i jest SETUID, pozwala zwykłym użytkownikom na bezpośredni wpływ na treść hasła plik w kontrolowany i przewidywalny sposób, uruchamiając go z uprawnieniami roota. Istnieje wiele innych poleceń SETUID
w systemach typu UNIX (chsh
, screen
, ping
, su
itp.), z których wszystkie wymagają podwyższonych uprawnień do prawidłowego działania. Istnieje również kilka programów SETGID
, w których jądro tymczasowo zmienia GID procesu, aby umożliwić dostęp do plików dziennika itp. sendmail
jest takim narzędziem.
sticky bit
służy nieco innemu celowi. Jego najczęstszym zastosowaniem jest zapewnienie, że tylko konto użytkownika, które utworzyło plik, może go usunąć. Pomyśl o katalogu /tmp
. Ma bardzo liberalne uprawnienia, które pozwalają każdemu na tworzenie tam plików. To jest dobre i pozwala procesom użytkowników na tworzenie plików tymczasowych (screen
, ssh
itd., Przechowywanie informacji o stanie w ). Aby chronić pliki tymczasowe użytkownika, /tmp
ma ustawiony bit lepki, więc tylko ja mogę usuwać moje pliki i tylko Ty możesz usuń swoje. Oczywiście, root może zrobić wszystko, ale musimy mieć nadzieję, że sysadmin nie jest obłąkany!
W przypadku zwykłych plików (to znaczy dla plików niewykonywalnych) ustawianie SETUID nie ma większego sensu / SETGID bity. SETGID w katalogach w niektórych systemach kontroluje domyślnego właściciela grupy dla nowych plików tworzonych w tym katalogu.
Komentarze
- Świetnie, dzięki Dlatego Sticky Bit jest jak osobiste zezwolenie (użytkownika)? Ta odpowiedź była dobrze sformułowana i zrozumiała.
- Dziękuję! Lepki bit zapewnia niewielką ochronę plików w katalogu z liberalnymi uprawnienia. ' nie jest tak naprawdę specyficzne dla danego użytkownika, ponieważ ten sam poziom ochrony jest zapewniany wszystkim plikom, bez względu na to, kto jest ich właścicielem. ' to sposób na zezwolenie każdemu na tworzenie plików i zapewnienie, że tylko właściciel może je zniszczyć.
- +1, D_bye, czy mógłbyś podzielić się przykładem dla setgid bit ustawionego w katalogu.Dzięki
- @Ankit Pod Solarisem (i prawie na pewno innymi – używam tylko * BSD i Solaris, chociaż), jeśli bit setgid jest ustawiony w katalogu, wszystkie nowe pliki utworzone w tym katalogu będą miały ten sam właściciel grupy jako sam katalog i nie odziedziczy podstawowej grupy (użytkownika uruchamiającego) proces tworzenia.
Odpowiedź
Myślę, że masz na myśli bit” SGID „pliku, który nie jest tym samym, co jego GID.
Oto typowy plik na moim komputerze (wyjście ls -l):
-rw-r----- 1 bristol users 16 2012-07-23 11:36 file.txt abbbcccddd <-- See explanation below.
Jeśli spojrzysz na pierwsze 10 symboli,
(a) -: To jest zwykły stary plik (w przeciwieństwie do katalogu, dowiązania symbolicznego, potoku itp. …)
(b) rw-: Właściciel może czytać i zapisywać ten plik, ale nie może go wykonywać. Właścicielem jest „Bristol”, jak widać w dalszej części wiersza.
(c) r–: Członkowie grupy, do której należy ten plik („użytkownicy” w przykładzie) inni niż właściciel mogą czytać, ale nie mogą zapisywać ani wykonywać tego pliku.
(d) —: A nikt inny nie może w ogóle uzyskać dostępu do tego pliku (z wyjątkiem oczywiście roota).
Pole GID mówi ci, do której grupy należy ten plik – w tym przypadku „użytkownicy”.
Pole, które prawdopodobnie miałeś na myśli, na podstawie twojego opisu, to bit SGID, a oto „lepsze wyjaśnienie, niż mogę wymyślić:
http://www.codecoffee.com/tipsforlinux/articles/028.html
Krótka wersja to: jeśli plik wykonywalny ma ustawiony bit SGID, to każdy, kto nie jest w grupie, ale może wykonać ten plik tymczasowo zyskuje prawa tej grupy podczas wykonywania programu.
Na przykład, jeśli masz grupę „bufor”, która może czytać i zapisywać pliki w katalogu bufora wydruku, nie musisz ” nie chcesz by ktokolwiek majstrował w tym katalogu, ale chcesz żeby mógł drukować pliki, możesz zrobić jakiś program lub skrypt do drukowania z grupą „spool” i ustawić bit SGID a kiedy ktokolwiek uruchomi ten program, program może teraz zapisz do katalogu buforowania bez uruchomionej osoby uzyskuje pełny dostęp.
Komentarze
- To dobrze, dziękuję za to. Rozumiem część dotyczącą uprawnień (część abbbcccddd) – ale to nuuuuuuu 🙂
- Właśnie zobaczyłem, że moje uprawnienia do folderu tmp to
drwxrwxrwt .... 2 sys .... sys .... 1024 Jul 24 15:17 tmp
. Co oznaczaabbbcccddt
(litera ' t ')? – Rozumiem, że ” d = katalog „, ” rwx = read, napisz, wykonaj „; ale nigdy wcześniej nie widziałem ' t ' na końcu. Czy to specjalne pozwolenie dla folderu tmp? - Małe t to ” plik wykonywalny (x) i lepki zestaw bitów . Zobacz powyżej, aby wyjaśnić, dlaczego tak się dzieje w / tmp.
Odpowiedź
Identyfikator GID to znalazłeś numer identyfikacyjny grupy. Jest to po prostu wygodny sposób dla systemu operacyjnego na wyrażenie grupy (użytkowników) związanej z czymś (procesem, plikiem itp.); zamiast potencjalnie długiego identyfikatora w postaci łańcucha, można go wyrazić jako liczbę o stałym rozmiarze.
W wartości uprawnień do pliku składającej się z czterech cyfr ósemkowych (na przykład 0755) trzecia cyfra określa uprawnienia grupy do pliku. Jeśli pominiesz pierwszą cyfrę, to druga cyfra określa uprawnienia grupy. Należy pamiętać, że pliki i katalogi są traktowane tak samo pod tym względem, ale dokładne znaczenie każdego bitu uprawnień jest nieco inne. -intuicyjne w przypadku katalogów.
Te dwa pojęcia są ze sobą powiązane, ale służą bardzo różnym celom.
A jeśli chodzi o twoje pytanie „czy w ogóle ważne jest ustawienie tych uprawnień?”; zawsze są ustawione na coś , ale ponieważ w większości przypadków początkowa cyfra to 0 („nic specjalnego”), zwykle jest pomijana dla zwięzłości. To, czy musisz określić inną wartość, zależy całkowicie od wzorzec użycia dla danego pliku lub katalogu.