Dodano: niedziela, 23 październik 2011r.
Piąta część rozdziału nr 7 książki:
Unix i Linux. Przewodnik administratora systemów. Wydanie IV
W każdym systemie program useradd realizuje tę samą opisaną wcześniej prostą procedurę. Jest on jednak konfigurowalny i zapewne warto dostosować go do swojego środowiska. Ponieważ każdy system ma własną koncepcję na temat tego, co powinno być dostosowane, gdzie należy wyprowadzić zmiany i jakie powinno być domyślne zachowanie, omówmy te szczegóły osobno.
W tabeli 7.4 zawarliśmy podręczny spis poleceń i plików konfiguracyjnych związanych z zarządzaniem użytkownikami. Każdy z naszych przykładowych systemów ma pakiet poleceń służących do działań na użytkownikach, zwykle zawiera on co najmniej useradd, usermod i userdel. Ponieważ wszystkie te polecenia są konfigurowane w podobny sposób, zaprezentujemy je tu na przykładzie polecenia useradd, uzupełniając jego wpisy o inne polecenia specyficzne dla danego systemu.
Warto zauważyć, że choć w każdym systemie polecenia te noszą nazwy useradd itd., same narzędzia różnią się w zależności od systemu.
Ubuntu umożliwia dodawanie użytkowników na dwa sposoby: za pomocą adduser i useradd. Polecenie adduser to napisany w Perlu skrypt osłonowy dla polecenia useradd, który jest nieco bardziej pomocny (tworzy katalogi domowe, kopiuje pliki startowe itd.).
Polecenie adduser jest konfigurowane w pliku /etc/adduser.conf, który zawiera m.in. następujące opcje:
Inne typowe parametry polecenia useradd, takie jak reguły dotyczące haseł, ustawiane są jako parametry modułu PAM odpowiedzialnego za regularne uwierzytelnianie haseł (omówienie PAM, czyli dołączalnych modułów uwierzytelniania, znajduje się na stronie 1113). Polecenie adduser ma bliźniacze polecenie addgroup oraz pokrewne deluser i delgroup.
Tabela 7.4. Polecenia i pliki konfiguracyjne służące do zarządzania użytkownikami
Polecenie useradd w systemie SUSE domyślnie nie tworzy katalogu domowego dla nowego użytkownika ani nie kopiuje plików startowych. Musisz zażądać tych udogodnień, podając opcję –m (pliki startowe pobierane są z katalogu /etc/skel); useradd nie tworzy też plików poczty dla nowych użytkowników.
Polecenie useradd w SUSE również nie powoduje powstania indywidualnych grup dla użytkowników; domyślny numer GID w pliku passwd ustawiany jest na podstawie zmiennej GROUP w pliku /etc/default/useradd. Ponadto nowi użytkownicy dodawani są do grup określonych przez zmienną GROUPS. Domyślnie są to grupy video i dialout, które umożliwiają dostęp do bufora ramek i oprogramowania pppd do obsługi połączeń dodzwanianych.
Aby zrekompensować te różnice, polecenie useradd w systemie SUSE wywołuje /usr/sbin/useradd.local, skrypt powłoki bash, który możesz dostosować do swoich potrzeb.
Plik /etc/login.defs w systemie SUSE reguluje następujące kwestie:
Zarówno strona podręcznika systemowego dla pliku login.defs, jak i komentarze w samym pliku zawierają cenne informacje opisujące różne parametry i ich znaczenie.
W systemie Red Hat Linux Enterprise polecenie useradd pobiera swoje parametry konfiguracyjne z pliku /etc/login.defs, który odpowiada za takie kwestie jak wygasanie haseł, algorytmy szyfrowania, pliki poczty oraz zakresy numerów UID i GID. Poszczególne parametry wyjaśnione są w komentarzach zawartych w tym pliku.
Polecenie useradd –D wyświetla parametry domyślne, które będą zastosowane dla nowych użytkowników. Są one zapisane w pliku /etc/default/useradd. W systemie Red Hat nowi użytkownicy umieszczani są w swoich indywidualnych grupach. We wpisach w pliku passwd użyto znaku „x” jako symbolu zastępczego dla hasła, a w pliku shadow użyto kodu „!!”, który wyłącza logowanie i wymaga, aby administrator systemu ustawił hasło dla nowego użytkownika. Domyślnym algorytmem szyfrowania jest MD5. W katalogu nowego użytkownika umieszczane są pliki startowe z katalogu /etc/skel.
W systemie Solaris niektóre domyślne parametry dotyczące logowania i haseł przechowywane są w plikach /etc/default/login i /etc/default/passwd; pozostałe zostały wbudowane w program useradd. Polecenie useradd –D wyświetli domyślne wartości dla kilku parametrów. Za pomocą dodatkowych opcji można je wykorzystać do przywrócenia niektórych ustawień domyślnych.
Formaty plików default/login i default/passwd są podobne do formatu pliku login.defs w systemie Linux. Puste wiersze i wiersze rozpoczynające się znakiem # są ignorowane, a każdy wiersz niebędący komentarzem stanowi przypisanie wartości lub zmiennej. Składnia wygląda jednak tak:
NAZWA=wartość
a nie tak:
NAZWA wartość
Plik /etc/default/passwd kontroluje następujące elementy:
Plik /etc/default/login odpowiada za takie kwestie jak:
Pliki /etc/security/policy.conf i /etc/security/crypt.conf określają algorytmy szyfrowania, które mogą być używane dla haseł.
Domyślnie polecenie useradd w systemie HP-UX nie tworzy katalogów domowych ani nie umieszcza użytkownika w jego indywidualnej grupie. Opcja –m spowoduje jednak, że useradd utworzy katalogi domowe i umieści w nich pliki startowe z katalogu /etc/skel.
Parametry konfiguracyjne polecenia useradd ustawione są w plikach /etc/default/useradd i /etc/default/security, przy czym plik useradd przyjmuje format w stylu Linuksa, czyli NAZWA wartość, a plik security używa formatu Solarisa, tj. NAZWA=wartość. HP potrafi nieźle namieszać! Składnię można wywnioskować z innych wpisów w pliku, jeśli jednak użyjesz złej składni, wartość, którą spróbujesz ustawić, zostanie po cichu zignorowana. Nie pojawi się żaden komunikat o błędzie.
Plik /etc/default/useradd kontroluje takie opcje jak:
Plik /etc/default/security zawiera dodatkowe parametry konfiguracyjne, z których część dotyczy zarządzania użytkownikami, czyli:
Nazwy zmiennych w tym pliku są długie i trafne, dzięki czemu dokładnie określają, za co odpowiada każda zmienna.
Polecenie useradd w systemie AIX
W systemie AIX polecenie useradd to w rzeczywistości skrypt osłonowy powłoki ksh dla mkuser, rodzimego odpowiednika useradd w AIX. Podobnie polecenie usermod wywołuje chuser, a userdel wywołuje rmuser. Strony podręcznika systemowego dla tych poleceń można wywołać, odwołując się zarówno do ich oryginalnych nazw, jak i tych, pod jakimi występują w pozostałych systemach.
Pliki konfiguracyjne kontrolujące wiele różnych aspektów logowania i haseł znajdują się w katalogu /etc/security. Są tam trzy istotne pliki: login.cfg, user i mkuser.default. Pierwsze dwa używają znaku * dla oznaczania komentarzy; trzeci nie zawiera komentarzy. Pliki te podzielone są na sekcje w następującej postaci:
etykieta:
atrybut = wartość
następny-atrybut = wartość
następna-etykieta:
atrybut = wartość
Przykładowo w pliku /etc/security/user etykietami są nazwy użytkowników (lub słowo default); możliwe atrybuty podane są w tabeli 7.5 na następnej stronie.
Tabela 7.5. Opcje konta użytkownika w pliku /etc/security/user (AIX)
Całkiem spora lista! Komentarze w pliku często podają wartości domyślne, które są dość sensowne dla instalacji o niskim poziomie bezpieczeństwa. Zalecamy wprowadzenie kilku zmian:
Niestety, to tylko jeden z plików konfiguracyjnych kontrolujących logowanie nowych użytkowników. Plik /etc/security/login.cfg zawiera parametry kontrolujące nieudane próby logowania (opóźnienie między wyświetleniem znaków zachęty do podania loginu i hasła, liczbę dozwolonych prób zalogowania przed wyłączeniem konta, czas trwania blokady konta, czas jego przywrócenia itd.), przedziały czasowe, w których można się zalogować, znak zachęty wyświetlany podczas prośby o podanie hasła, listę dozwolonych powłok, maksymalną dopuszczalną liczbę jednoczesnych logowań, czas oczekiwania na wprowadzenie hasła, rodzaj używanego uwierzytelniania (jeśli korzystasz z PAM, musisz to podać właśnie w tym pliku) oraz algorytmy szyfrowania haseł (domyślnie jest to crypt). (Mechanizm PAM pojawił się w AIX stosunkowo niedawno; pełną funkcjonalność powinien mieć w wersjach 5.3 lub późniejszych.)
Możliwości konfiguracji są niesamowicie rozbudowane, aż do przesady. Jeszcze większy zamęt powoduje to, że niektóre parametry pojawiają się w obu plikach, przy czym czasem występują pod tą samą nazwą (np. logintimes), a czasem nazywają się inaczej (np. loginretries i logindisable). Krótko mówiąc, jeden wielki bałagan i mętlik.
Więcej informacji na temat PAM można znaleźć na stronie 1113.
W AIX polecenie useradd nie ma opcji –D, która pokazywałaby domyślne wartości dla nowych użytkowników. Polecenie useradd umieszcza nowych użytkowników w pojedynczej grupie i nie tworzy ich katalogów domowych, chyba że zostanie wywołane z opcją –m (w tym przypadku skopiuje ono również plik .profile z katalogu /etc/security).
Aby utworzyć nowego użytkownika „hilbert”, używając systemowych wartości domyślnych w Linuksie, wystarczy po prostu wydać polecenie:
$ sudo useradd hilbert
Polecenie to powinno utworzyć w pliku /etc/passwd następujący wpis:
hilbert:x:1005:20::/home/hilbert:/bin/sh
Polecenie useradd wyłączyło konto, wstawiając znak x w polu przeznaczonym na hasło. Aby można było korzystać z konta, musisz mu przypisać prawdziwe hasło.
Poniżej przedstawiamy bardziej realistyczny przykład. Określimy, że podstawową grupą użytkownika hilbert ma być „faculty” i powinien on również zostać dodany do grupy „famous”. Zmienimy też domyślne położenie katalogu domowego oraz powłokę i poprosimy useradd o utworzenie katalogu domowego, jeśli jeszcze nie istnieje:
$ sudo useradd -c "David Hilbert" -d /home/math/hilbert -g faculty –G famous -m -s /bin/tcsh hilbert
Polecenie to utworzy następujący wpis w pliku passwd:
hilbert:x:1005:30:David Hilbert:/home/math/hilbert:/bin/tcsh
Przypisany numer UID jest większy niż najwyższy UID w systemie, a odpowiedni wpis w pliku shadow to:
hilbert:!:14322:0:99999:7:0::
Znaki zastępcze dla hasła w plikach passwd i shadow mogą różnić się w zależności od systemu operacyjnego. Do czasu nadania hasła dla konta znak zastępczy w pliku shadow blokuje możliwość zalogowania. Ponadto polecenie useradd doda użytkownika hilbert do odpowiednich grup w pliku /etc/group, utworzy katalog /home/math/hilbert i skopiuje do niego pliki z katalogu /etc/skel.
W systemie Linux istnieje polecenie newusers, za pomocą którego jednocześnie utworzysz wiele kont na podstawie zawartości pliku tekstowego. Jest ono dość ułomne, ale może okazać się przydatne, gdy musisz dodać większą liczbę użytkowników naraz, np. przy tworzeniu kont dla całego rocznika studentów. Polecenie newusers oczekuje pliku wejściowego zawierającego takie same wiersze jak plik /etc/passwd, z tym, że pole z hasłem musi zawierać hasło początkowe zapisane jawnym tekstem, dlatego dobrze pilnuj tego pliku.
Polecenie newusers uznaje parametr wygasania haseł ustawiony w pliku /etc/login.defs, ale w odróżnieniu od useradd nie kopiuje domyślnych plików startowych. Jednym plikiem startowym, jaki zapewnia, jest .xauth.
Dla uniwersytetu potrzebny jest skrypt wsadowy adduser, który na podstawie listy studentów pobranej z danych rekrutacyjnych lub rejestracyjnych wygeneruje plik wejściowy dla newusers, w którym użytkownicy będą mieli przypisane niepowtarzalne i zgodne z lokalnie przyjętymi regułami nazwy kont, silne, losowo wygenerowane hasła oraz numery UID i GID przyporządkowane rosnąco dla każdego użytkownika. Prawdopodobnie lepiej będzie napisać własny skrypt osłonowy dla useradd w języku Perl lub Python, niż zmusić do działania polecenie newusers, aby robiło dokładnie to, czego oczekujesz.
cdn.
Pierwsza część:
http://www.linuxportal.pl/artykuly/dodawanie-nowyc/.../-1-id98820
Druga część:
http://www.linuxportal.pl/artykuly/plik-etc-passwo/.../-2-id99146
Trzecia część:
http://www.linuxportal.pl/artykuly/pliki-etc-shado/.../-3-id99590
Czwarta część:
http://www.linuxportal.pl/artykuly/podstawy-dodawa/.../-4-id99882
Wpisy z blogów/ TOP 30dni
Artykuły wiodące wrześniowego wydania „Linux Magazine” poświęcone systemom plików opisują rewolucyjny profesjonalizm ZFS, przyszłościowy Btrfs oraz dzieje klasycznego Ext. Dołączone DVD zawiera bijącą rekordy popularności wśród użytkowników dystrybucję Linux Mint 18 w wersji 32-bitowej z pulpitem Mate. Wewnątrz wydania również: przywracanie plików ...
Mandriva objęła patronat i bierze aktywny udział w projekcie Kat, którego celem jest stworzenie zaawansowanego systemu wyszukiwawczego zasobów komputerów. Kat jest umożliwia aplikacjom środowiska graficznego KDE wyszukiwanie i indeksowanie plików znajdujących się w komputerze użytkownika.Z dokumentów, plików obrazów, plików muzycznych ...
Silvan Calarco ogłosił wydanie najnowszej kompilacji pakietów dystrybucji openmamba. Openmamba to włoski projekt społecznościowy sponsorowany przez mambaSoft (http://www.mambasoft.it/) i tworzony przy udziale społeczności open-source. System jest wydawany jako LiveCD z możliwością instalacji. Dystrybucja jest wydawania tylko dla architektury Intel i586. Dystrybucja ...
Daniel Kihlberg ogłosił wielo-platformowego frameworka pozwalającego na tworzenie oprogramowania w językach C++ i Java. Instalatory z pełną wersją oprogramowania dla systemów desktopowych (Linux, MAC i Windows do pobrania z tej strony: http://qt.nokia.com/downloads. Osoby, które chciałyby wykorzystać Qt 4.8 do projektowania ...
Zapraszam do wstępnej części kursu na temat programowania na mobilną platformę Android. W lekcji zerowej zajmiemy się przygotowaniem środowiska potrzebnego nam do rozpoczęcia zabawy. Będziemy potrzebowali następujących rzeczy: Eclipse Java Development Kit (JDK) Android SDK Plugin ADT do Eclipse 1. Zacznijmy od ściągnięcia Eclipse, a ...