Jak umieścić komentarze w moim pliku / etc / shadow?

10

Przeglądam niektóre aktualizacje systemu, a mój menedżer pakietów pokazuje zmiany między nadrzędnym / etc / shadow a moim.

Chciałbym dodać kilka uwag do pliku na następny raz. Jak mam wstawiać komentarze w pliku / etc / shadow bez rujnowania rzeczy.

Myślę, że domyślnie „#” by to zrobił, ale jeśli popełniam błąd, ponowne uruchomienie nie będzie tak przyjemne.

DarkSheep
źródło
Użyj etckeeper i zapisz swoje komentarze w wiadomościach zatwierdzenia.
Gilles „SO- przestań być zły”

Odpowiedzi:

14

W systemach Linux korzystających z GNU libc wiersze rozpoczynające się od #są ignorowane /etc/shadow. Analiza jest wykonywana przez __fgetspent_r(), a jej kod źródłowy wyraźnie obsługuje (i dokumentuje) to zachowanie.

Więc na większości systemów Linux można komentować linie /etc/shadowz #bez powodowania problemów.

Niestety komentarze są usuwane, gdy /etc/shadowsą aktualizowane, np. Przez passwd; więc przechowywanie komentarzy nie jest w rzeczywistości bezpieczne (z punktu widzenia komentarzy).

Oznacza to, że trzeba znaleźć gdzieś indziej, aby zapisać swój komentarz: dwie propozycje są dobre dr01 „s pomysł wykorzystania /etc/shadow.README, albo jeszcze lepiej Gillespomysł wykorzystania popełnić wiadomości z etckeeper .

Stephen Kitt
źródło
Wygląda na to, że prawie każdy nieprawidłowy wpis się zgubił passwd. Próbowałem użyć fałszywego wpisu użytkownika lub poprawnego i dodać znaki do końcowego wpisu, ale wszystko to bezskutecznie.
Otheus
7

Każda linia /etc/shadowjest uważana za rekord użytkownika. Jak napisał Stephen Kitt, który przejrzał kod źródłowy parsera, możesz wstawiać wiersze zaczynające się od #jako komentarze w pliku, a nawet puste wiersze i zostaną one zignorowane.

Jednak nigdy nie widziałem /etc/shadowpliku z komentarzami. Wydaje się, że nie jest to powszechna praktyka, i to z bardzo dobrego powodu: zdecydowanie nie zaleca się jej ręcznej edycji . Z tego powodu wolałbym raczej utworzyć /etc/shadow.READMEplik, aby przechowywać komentarze. Pamiętaj o chmod 000pliku, aby uniknąć szpiegowania go przez użytkowników innych niż root.

dr_
źródło
Więc dlaczego 000? Należą do ciebie, root:roota potem ug=r,o=nie wystarczy?
0xC0000022L
000 to uprawnienia /etc/shadow(przynajmniej w Red Hat, nie szukałem w innych dystrybucjach) i upewnij się, że tylko root ma dostęp do pliku. 440, jak sugerujesz, spraw, aby plik był czytelny dla zwykłego użytkownika, gdyby dołączył on / ona przez pomyłkę do grupy głównej. Na prawidłowo administrowanej maszynie i do wszystkich praktycznych celów są one warte tego samego. Myślę, że 000 lepiej oddaje znaczenie „pliku o kluczowym znaczeniu dla bezpieczeństwa - trzymaj ręce z daleka”, ale to tylko moja opinia.
dr_
@ dr01: nie jestem pewien, jak normalny użytkownik dołączyłby do grupy głównej bez superużytkownika. A jeśli superużytkownik popełni taki błąd, wszystkie zakłady są wyłączone. Istnieje na przykład spora szansa, że ​​dana osoba jest już wtedy sudoer i może uzyskać dostęp do pliku niezależnie. Uważam to za bezpieczeństwo niejasne, ale YMMV.
0xC0000022L
Dokładnie to miałem na myśli, gdy „zwykły użytkownik dołącza przez pomyłkę do grupy głównej”. Moim przypadkiem jest to, że superużytkownik może (choć szanse są niewielkie) przez pomyłkę umieścić go w grupie głównej. Chociaż uprawnienie 000 pozwoli tylko rootowi na dostęp do pliku. Rozumiem, że to prawdopodobnie przypadek na krawędzi, ale uważam, że jest to o wiele czystsze, ponieważ plik komentarza ma te same uprawnienia co /etc/shadow.
dr_
3

Oczywiście masz zmiany w swoim /etc/shadow. Nie chcesz, aby informacje o koncie /etc/shadowna swoim serwerze - hashowane hasła, wygaśnięcia konta itp. - były kopią bajt po bajcie przesłaną dalej /etc/shadow.

I mam nadzieję, że nie nadpisujesz swojego prądu tym, /etc/shadowco otrzymujesz ze źródła danych.

Andrew Henle
źródło