chmod g+s .;
To polecenie ustawia identyfikator grupy (setgid) w bieżącym katalogu zapisany jako .
.
Oznacza to, że wszystkie nowe pliki i podkatalogi utworzone w bieżącym katalogu dziedziczą identyfikator grupy katalogu, a nie identyfikator grupy podstawowej użytkownika, który utworzył plik. Zostanie to również przekazane do nowych podkatalogów utworzonych w bieżącym katalogu.
g+s
wpływa na identyfikator grupy pliku, ale nie wpływa na identyfikator właściciela.
Pamiętaj, że dotyczy to tylko nowo utworzonych plików. Na pliki przeniesione ( mv
) do katalogu nie ma wpływu ustawienie setgid. Pliki, które są kopiowane, cp -p
również pozostają nienaruszone.
Przykład
touch un;
chgrp canard .;
chmod g+s .;
touch deux ;
W takim przypadku deux
będzie należeć do grupy, canard
ale un
będzie należeć do grupy tworzącego użytkownika, cokolwiek to jest.
Drobna uwaga na temat używania średników w poleceniach powłoki
W przeciwieństwie do c
lub perl
, po poleceniu powłoki musi następować średnik tylko wtedy, gdy po nim znajduje się kolejne polecenie powłoki w tym samym wierszu poleceń. Dlatego rozważ następujący wiersz poleceń:
chgrp canard .; chmod g+s .;
Ostatni średnik jest zbyteczny i można go usunąć:
chgrp canard .; chmod g+s .
Ponadto, jeśli umieścilibyśmy te dwa polecenia w osobnych wierszach, wówczas pozostały średnik nie jest potrzebny:
chgrp canard .
chmod g+s .
cp
) są w rzeczywistości nowo utworzone. Jeśli nie dziedziczą uprawnień grupowych, program kopiujący gra w gry, takie jak kopiowanie do pliku tymczasowego, a następnie przenoszenie go do katalogu docelowego.cp -p
zastępuje ustawienie setgid.cp -p
zastępuje ustawienie setgid? Na każdej istniejącej implementacji Uniksa? POSIX mówi, że nie jest określone, czy niepowodzenie kopiowania identyfikatora użytkownika lub grupy w cp -p powoduje wyświetlenie komunikatu diagnostycznego! Jednak bity S_SUID i S_SGID muszą zostać wyczyszczone w tej sytuacji (tj. Jeśli plik jest setuid bob, ale własność boba nie może zostać skopiowana, aby plik był własnością janet, nie rób go setuid janet.)cp -p
przesłania ustawienie setgid?” Zgodnie ze specyfikacją POSIX, właśnie to powinno robić. Robi to na wszystkich systemach Unix, z których korzystałem. Przytoczyłeś część specyfikacji dotyczącą tego, co zrobić, aby zabezpieczyć bezpieczeństwo w przypadku, gdy nie można powielić identyfikatora grupy . Nigdy nie spotkałem się z taką sytuacją „nie mogę”, prawda?Możesz zmienić uprawnienia do pliku za pomocą komendy chmod. W Uniksie uprawnienia do plików, które określają, kto może mieć różne typy dostępu do pliku, są określone zarówno przez klasy dostępu, jak i typy dostępu. Klasy dostępu to grupy użytkowników, a każdej z nich można przypisać określone typy dostępu
Unix / Linux ma użytkowników i grupy użytkowników, którym można przypisać dostęp do plików
opcje g + s są następujące:
g - uprawnienia, które mają na to inni użytkownicy w grupie plików
s - ustaw identyfikator użytkownika lub grupy podczas wykonywania
oto przykładowe użycie:
(zezwól wszystkim na czytanie, zapisywanie i uruchamianie określonego pliku oraz włączanie ustawionego identyfikatora grupy)
Aby ustawić / zmodyfikować uprawnienia do pliku, musisz użyć programu chmod. Oczywiście tylko właściciel pliku może używać chmod do zmiany uprawnień do pliku. chmod ma następującą składnię: chmod [opcje] pliki trybów Część „mode” określa nowe uprawnienia do plików, które następują jako argumenty. Tryb określa, które uprawnienia użytkownika należy zmienić, a następnie jakie typy dostępu należy zmienić. Powiedzmy na przykład: chmod ax socktest.pl
Oznacza to, że bit wykonania powinien zostać wyczyszczony (-) dla wszystkich użytkowników. (właściciel, grupa i reszta świata) Uprawnienia zaczynają się od litery określającej, których użytkowników powinna dotyczyć zmiana, może to być dowolna z następujących sytuacji:
Po tym następuje instrukcja zmiany, która składa się z + (ustawiony bit) lub - (czysty bit) i litery odpowiadającej bitowi, który powinien zostać zmieniony. Zobaczmy kilka przykładów:
Dziwne liczby ... Mogłeś kiedyś spotkać coś takiego jak chmod 755 i oczywiście będziesz się zastanawiać, co to jest. Chodzi o to, że możesz zmienić cały wzorzec uprawnień do pliku za jednym razem, używając jednej liczby jak ta w tym przykładzie. Każdy tryb ma odpowiedni numer kodu i jak zobaczymy, istnieje bardzo prosty sposób, aby dowiedzieć się, który numer odpowiada dowolnemu trybowi. Każda z trzech cyfr numeru trybu odpowiada jednej z trzech trójek uprawnień. (u, g oraz o) Każdy bit zezwolenia w triplecie odpowiada wartości: 4 dla r, 2 dla w, 1 dla x. Jeśli bit zezwolenia ma wartość dodaną do numeru trypletu uprawnień. Jeśli jest wyczyszczone, nic nie dodajesz. (Niektórzy z was mogą to zauważyć,
Tak więc 755 to zwięzły sposób powiedzenia „Nie mam nic przeciwko, aby inni ludzie przeczytali lub uruchomili ten plik, ale tylko ja powinienem móc go zmodyfikować”, a 777 oznacza „każdy ma pełny dostęp do tego pliku”
doskonałe referencje
źródło
Wynik polecenia ls będzie zależeć od umask.
g + s ustawi sgid na plik. Sprawdź tutaj, aby uzyskać bardziej szczegółowe informacje na temat SUID SGID
więc jeśli twój umask wynosi na przykład 022, wynikiem będzie coś takiego:
źródło
W Linuksie jedna z domyślnych opcji montowania dla ext? fs to 'nogrpid | sysvgroups ”. Tak więc pierwszy dotyk un tworzy plik o identyfikatorze grupy równym fsgid procesu tworzenia, gdzie fsgid = egid.
chmod g + s., powoduje, że kolejne tworzenie pliku / katalogu dziedziczy identyfikator grupy z folderu nadrzędnego, a jeśli utworzoną rzeczą jest katalog, to także dostaje g + s jako swój element nadrzędny.
Tutaj dotknij deux, tworzy deux z grupową kartą.
Semantyka zmienia się, jeśli opcja montowania to „grpid | bsdgroups ”, w takim przypadku tworzenie nowego pliku / katalogu dziedziczy identyfikator grupy z folderu nadrzędnego, nawet bez ustawiania g + s dla samego rodzica.
źródło