Przykładowy /etc/group
plik zawiera następujące wpisy:
root:*:0:
adm:!:4:logcheck
antoine:x:1000:
Strony podręcznika, które przeczytałem (Debian i OSX), mówią, że drugim polem jest przechowywanie hasła grupy. Ponieważ są one rzadko używane, zwykle umieszcza się w nich gwiazdkę *
lub a x
zamiast pozostawiać puste.
shadow
Strona mężczyzna mówi, że to drugie pole należy przechowywać wynik crypt
funkcji. A jeśli zapisany zostanie nieprawidłowy wynik (taki jak *
lub !
), oznacza to, że hasła nie można użyć jako metody uwierzytelnienia.
Czy to dotyczy również group
pliku? Dlaczego w moim group
pliku są 3 różne znaki o tym samym znaczeniu? Czy mogę bezpiecznie zmienić wszystko na *
?
*
?!
jest używany tylko dla jednej grupy na jednym serwerze z 10+, którymi obecnie zarządzam. Dla uproszczenia niektórych skryptów sprawdzających, zawsze mając ten sam znak, wszystko by się wyjaśniło. Cóż, jeśli w rzeczywistości oznacza to to samo, oczywiście.Odpowiedzi:
Myślisz, że
!
,*
albox
ma specjalne znaczenie tutaj i są w związku z tym obawy, że nie mogą być pewne rozróżnienie między nimi.Faktem jest, że postacie te są wybierane tylko dlatego, że wyróżniają się, przynajmniej dla zachodnich oczu. Znaki te oznaczają brakującą wartość, przypadek wyjątku lub ostrzeżenie. Możesz umieścić
boogabooga
tutaj i mieć dokładnie taki sam efekt.Wynika to ze sposobu, w jaki hasła są obsługiwane w systemach typu Unix. Gdy system otrzyma hasło, szyfruje je i porównuje z przechowywanym hashem. Dlatego liczy się tylko to, że użyjesz jakiegoś znaku lub sekwencji znaków, które nie mogą być poprawnym hasłem. (Z oczywistych powodów nie może także zawierać dwukropka).
Chociaż nie ma różnicy między tymi postaciami z perspektywy głównego systemu operacyjnego, istnieją pewne konwencje:
Kiedy
pwconv(8)
program Linux widzix
, oznacza to, że „już przeniosłem ten skrót hasła publicznego do pliku hasła cienia”.Nie jest to ważny przypadek w praktyce, ponieważ dni konwersji na (lub, do nieba, pomóżcie, od ) haseł cieni są już za nami.
Jeśli używasz
usermod -L
lubpasswd -l
blokujesz użytkownika,!
ma to szczególne znaczenie,/etc/shadow
ponieważ taka jest konwencja „przełam ten skrót, aby już nie pasował”.Dodanie dowolnego innego znaku do przechowywanego skrótu również go zepsuje. Naruszanie tej konwencji tylko zapobiega
usermod -U
lubpasswd -u
od pozbycia logowanie użytkownika. Równie prawdą jest to, że ponieważ zablokowałeś go ręcznie, dodając fałszywą postać, możesz odblokować ją ręcznie, usuwając ją.To jednak tylko drobiazgi w związku z tym pytaniem. Nie ma
groupmod -L
lubgpasswd -l
nie ma!
konwencji w/etc/group
.Więcej ciekawostki: jeśli są zamiar blokady kont użytkowników przez strony, należy trzymać z dala od
[A-Za-z0-9/\]
zestawu, ponieważ są to znaki prawne dotyczące mieszania. To jeden z powodów, dla których tutaj sięusermod
używa .!
x
Nie widzę nic złego w normalizacji wszystkich
/etc/group
pól hasła, jeśli dzięki temu poczujesz się lepiej. Robiąc to, już mówisz, że jesteś szczęśliwy, hakując te pliki ręcznie, więc prawdopodobnie nie lubisz używać narzędzi, które dbają o różnice. Niezależnie od tego zmiana nie będzie miała wpływu na codzienne działanie systemu.źródło
getpwent(3)
i mieć znajomych. Perl ma owijki dla nich w swojej standardowej bibliotece, tak jak każdy inny uniksowy język skryptowy skoncentrowany na sysadminie. Jeśli używasz języka bez takich opakowań, byłby to dobry pretekst do zamiany. :)x
i*
zaznaczają pole „nieużywane” hasło. Ciekawe, chociaż ... strona podręcznika mówi, że pole może równie dobrze pozostać puste (to, co w polu bazy danych może być nazwane NULL - szczególnie w Oracle, które definiuje NULL i pusty ciąg znaków jako taki sam). Wróćmy więc do / etc / group: po co używaćx
lub!
lub*
zamiast pozostawiać puste pole? Dwa kolejne dwukropki wyróżniają się równie dobrze, jak każda z tych postaci. Nie ważne - po prostu ciekawy/etc/shadow
. Odrzucam również pogląd, że podwójny dwukropek jest równie jasny. Szybkie, ilu puste pola są tutaj:::::::
? Teraz ile::x:*:!:x:*:
? Tę samą liczbę dwukropków, ale różne odpowiedzi, ufam.