Fragmenty artykułów z książek wydawnictwa Helion.pl
Dodano: środa, 19 październik 2011r.
Trzecia część rozdziału nr 7 książki:
Unix i Linux. Przewodnik administratora systemów. Wydanie IV
Plik shadow (zwany też plikiem przesłaniania haseł lub plikiem cieni) może być odczytany tylko przez superużytkownika. W pliku przechowywane są zaszyfrowane hasła, chronione przed wścibskimi oczami i programami do łamania haseł. Mieszczą się w nim również pewne dodatkowe informacje o kontach, które nie były uwzględnione w pierwotnym formacie /etc/passwd. Obecnie przesłanianie haseł jest domyślnie włączone niemal we wszystkich systemach.
W systemie AIX plik przechowujący zaszyfrowane hasła nosi nazwę /etc/security/passwd, podczas gdy we wszystkich pozostałych systemach jest to /etc/shadow. Oczywiście, ich formaty i zawartość są różne. Najpierw przyjrzymy się plikowi /etc/shadow.
Plik shadow nie jest nadzbiorem pliku passwd, a plik passwd nie jest generowany na jego podstawie. Musisz utrzymywać oba te pliki lub skorzystać z takich narzędzi jak useradd, które będą to robić za Ciebie. Podobnie jak /etc/passwd, plik /etc/shadow zawiera jeden wiersz dla każdego użytkownika. Każdy wiersz to dziewięć pól rozdzielonych dwukropkami, a przeznaczonych na:
Jedyne wymagane wartości to nazwa użytkownika i hasło. W pliku /etc/shadow pola z datami bezwzględnymi podawane są jako liczba dni (nie sekund), jakie upłynęły od 1 stycznia 1970 roku, co nie jest standardowym sposobem odliczania czasu w systemach Unix i Linux. Możesz jednak zamienić sekundy na dni, jakie upłynęły od początku ery Uniksa, stosując polecenie:
solaris$ expr `date +%s` / 86400
(Dzień ma 86 400 sekund: 60*60*24)
Typowy wpis w pliku shadow wygląda tak:
millert:$md5$em5J8hL$a$iQ3pXe0sakdRaRFyy7Ppj.:14469:0:180:14:::
Oto bardziej szczegółowe opisy tych pól.
Popatrzmy ponownie na nasz przykładowy wiersz z pliku shadow:
millert:$md5$em5J8hL$a$iQ3pXe0sakdRaRFyy7Ppj.:14469:0:180:14:::
W tym przykładzie użytkownik millert po raz ostatni zmieniał swoje hasło 13 sierpnia 2009 roku. Hasło musi zostać zmienione ponownie w ciągu 180 dni, a przez ostatnie dwa tygodnie przed tym terminem użytkownik millert będzie otrzymywał ostrzeżenia o konieczności zmiany hasła. Konto nie ma ustawionej daty wygaśnięcia.
W systemach Solaris, HP-UX i Linux możesz użyć narzędzia pwconv, aby uzgodnić zawartość pliku shadow z plikiem passwd przez dodanie nowych użytkowników i usunięcie tych, których nie ma już w pliku passwd. W systemie Linux program pwconv wypełnia większość wpisów w pliku shadow wartościami domyślnymi podanymi w pliku /etc/login.defs.
W systemie Solaris użytkownik root za pomocą polecenia passwd -f nazwa_użytkownika może wymusić na użytkowniku zmianę hasła przy następnym logowaniu. Jest to przydatne w sytuacji, gdy regularnie uruchamiasz programy do łamania zabezpieczeń w celu wykrycia źle wybranych (słabo zabezpieczonych) haseł (w systemie Linux ta sama opcja -f umożliwia użytkownikowi zmianę informacji na swój temat).
W systemie AIX nie używa się terminu przesłaniania haseł, ale koncepcja jest taka sama. Zaszyfrowane hasła przechowywane są w pliku /etc/security/passwd, w całkowicie innym formacie niż ten, który występuje w pliku /etc/passwd. Oto przykład pochodzący z czystej instalacji systemu AIX, gdzie domyślnym algorytmem szyfrowania haseł jest crypt: (Wybranie silniejszego algorytmu szyfrowania powinno być jedną z pierwszych czynności do wykonania po zainstalowaniu systemu AIX.)
trent:
password = u10.OaYxRx4qI
lastupdate = 1224876639
flags = ADMCHG
evi:
password = PiIr2qOPabZ.Q
lastupdate = 1235785246
flags =
Ten format nie wymaga dokładniejszych wyjaśnień. Poszczególne wpisy oddzielone są jedną lub kilkoma pustymi wierszami. Taki sam format stosowany jest w większości plików konfiguracyjnych w katalogu /etc/security, gdzie nazwa użytkownika wyznacza dowolny kontrolowany lub rejestrowany obiekt.
System AIX dostarcza niezliczoną liczbę ustawień kontrolujących wszystkie aspekty logowania i haseł. Niektóre opcje dotyczą użytkowników, a inne portów (aby kontrolować porty TTY, na których dany użytkownik może się zalogować). Szczegółowe informacje znajdują się komentarzach zawartych w plikach etc/security/login.cfg i /etc/security/user. Przydatnym poleceniem jest pwdadm, które umożliwia wymuszenie na użytkowniku zmiany hasła przy następnym logowaniu.
Plik /etc/group zawiera nazwy grup w systemie Unix oraz listę członków każdej grupy. Oto fragment pliku group z systemu AIX:
system:!:0:root,pconsole,esaadmin
staff:!:1:ipsec,esaadmin,trent,ben,garth,evi
bin:!:2:root,bin
sys:!:3:root,bin,sys
adm:!:4:bin,adm
nobody:!:4294967294:nobody,lpd
Każdy wiersz odpowiada jednej grupie i zawiera cztery pola:
Podobnie jak w przypadku pliku /etc/passwd, poszczególne pola rozdzielane są dwukropkami. Dla zachowania zgodności nazwy grup powinny być ograniczone do ośmiu znaków, choć wiele systemów tego nie wymaga. Możliwe jest ustawienie hasła dla grupy, dzięki czemu użytkownicy niebędący jej członkami mogą ją wybrać za pomocą polecenia newgrp, ale rzadko się z tego korzysta. Tylko Linux w pełni obsługuje hasła grup. (Aby ustawić hasło dla grupy w systemie Solaris, trzeba posłużyć się plikiem shadow i ręcznie skopiować oraz wkleić łańcuch z hasłem do pliku /etc/group. Nie ma tu pliku /etc/gshadow ani jego odpowiednika.)
Hasło można ustawić za pomocą polecenia gpasswd; będzie ono przechowywane w zaszyfrowanej formie w pliku /etc/gshadow. Zazwyczaj nie stosuje się haseł dla grup, występują one bardzo rzadko.
Podobnie jak nazwy użytkowników i numery UID, nazwy grup i numery GID powinny być jednakowe na wszystkich komputerach, które współdzielą pliki za pośrednictwem sieciowego plików. Może to być trudne do uzyskania w środowisku heterogenicznym, ponieważ odmienne systemy operacyjne używają różnych numerów GID dla grup o tych samych nazwach.
Odkryliśmy, że najlepszym sposobem poradzenia sobie z tym problemem jest unikanie używania grupy systemowej jako domyślnej grupy logowania użytkownika. Niektóre systemy kontrolują wykonywanie poleceń przy użyciu własności grupy w połączeniu z bitami uprawnień. Niejednolite numery GID na różnych systemach powodują zamieszanie przy instalowaniu i aktualizacji oprogramowania w ramach całej organizacji.
Jeśli użytkownik ma przypisaną domyślną grupę w pliku /etc/passwd, ale nie jest wymieniony jako członek tej grupy w pliku /etc/group, ostatnie słowo należy do /etc/passwd. Członkostwo grupy przydzielane podczas logowania jest połączeniem tego, co znajduje się w plikach passwd i group.
Niektóre systemy ograniczają liczbę grup, do których użytkownik może należeć. Najczęściej spotykany limit to 8 grup, ale w systemie Solaris wynosi on 16, w HP-UX — 20, a w systemach AIX i Linux liczba grup jest pozornie nieograniczona.
Aby zminimalizować potencjalne konflikty z numerami GID przydzielanymi domyślnie przez producentów, zalecamy rozpoczęcie numerowania lokalnych grup od 500 lub wyższych wartości.
Pierwotnie w systemie Unix nowym użytkownikom przydzielana była grupa reprezentująca ich ogólną kategorię, np. „studenci” lub „finanse”. Taka konwencja zwiększała jednak prawdopodobieństwo, że przez niedbałe ustawienia dostępu użytkownicy będą mogli czytać nawzajem swoje pliki, nawet jeśli nie było to intencją właściciela. Aby uniknąć tego problemu, należy tworzyć unikatową grupę dla każdego użytkownika. Grupa może nosić tę samą nazwę co użytkownik. Możesz też przydzielić im ten sam numer GID i UID.
We wszystkich dystrybucjach Linuksa, z wyjątkiem SUSE, narzędzie useradd domyślnie tworzy dla użytkownika prywatną grupę. Systemy Unix domyślnie umieszczają wszystkich nowych użytkowników w tej samej grupie, ale program useradd można w nich skonfigurować w taki sposób, aby obsługiwał również prywatne grupy.
Użytkownik powinien być jedynym członkiem swojej prywatnej grupy. Jeśli chcesz umożliwić użytkownikom współdzielenie plików z wykorzystaniem mechanizmu grup, utwórz w tym celu osobne grupy. Koncepcja grupy prywatnej nie miała na celu zniechęcenia do korzystania z grup jako takich — chodziło po prostu o wprowadzenie bardziej restrykcyjnej grupy domyślnej dla każdego użytkownika, aby nie dochodziło do niezamierzonego udostępniania plików. Możesz również osiągnąć ten cel za pośrednictwem polecenia powłoki umask (patrz strona 238).
Systemy Linux, Solaris i HP-UX zawierają polecenia służące do tworzenia, modyfikowania i usuwania grup: groupadd, groupmod i groupdel. System AIX wymaga ręcznej modyfikacji pliku /etc/group za pomocą edytora tekstu. Zawiera on jednak polecenie grpck służące do sprawdzania składni tego pliku.
cdn.
Pierwsza część:
http://www.linuxportal.pl/artykuly/dodawanie-nowyc/.../-1-id98820
Druga część:
http://www.linuxportal.pl/artykuly/plik-etc-passwo/.../-2-id99146
Wpisy z bloga/ TOP