13.6. Modyfikacja ustawień kont

W środowisku systemów UNIX® dostępnych jest szeroka gama różnorodnych poleceń do manipulacji kontami użytkowników. Najczęściej wykorzystywane zostały omówione poniżej, wraz z przykładami zastosowania.

Polecenie Opis
adduser(8) Zalecane pogram wiersza poleceńdo dodawania nowych użytkowników.
rmuser(8) Zalecany program wiersza poleceń do usuwania użytkowników.
chpass(1) Elastyczne narzędzie do zmiany informacji w bazie danych użytkowników.
passwd(1) Proste polecenie wiersza poleceń do zmiany haseł użytkowników.
pw(8) Potężne i elastyczne narzędzie do zmiany wszystkich parametrów kont użytkowników.

13.6.1. adduser

adduser(8) jest prostym programem służącym do dodawania nowych użytkowników. Tworzy ono odpowiednie wpisy w plikach systemowych passwd i group, tworzy katalog macierzysty nowego użytkownika oraz kopiuje z /usr/share/skel domyślne pliki konfiguracyjne (“dotfiles”). Potrafi również wysłać nowemu użytkownikowi wiadomość powitalną.

Notatka: Przy wprowadzaniu hasła na ekranie nie są wyświetlane żadne znaki, nawet gwiazdki. Dlatego właśnie w tym momencie należy zwrócić szczególną uwagę, by się nie pomylić.

Przykład 13-1. Dodawanie użytkownika we FreeBSD

# adduser
Username: jru
Full name: J. Random User
Uid (Leave empty for default):
Login group [jru]:
Login group is jru. Invite jru into other groups? []: wheel
Login class [default]:
Shell (sh csh tcsh zsh nologin) [sh]: zsh
Home directory [/home/jru]:
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password:
Enter password again:
Lock out the account after creation? [no]:
Username   : jru
Password   : ****
Full Name  : J. Random User
Uid        : 1001
Class      :
Groups     : jru wheel
Home       : /home/jru
Shell      : /usr/local/bin/zsh
Locked     : no
OK? (yes/no): yes
adduser: INFO: Successfully added (jru) to the user database.
Add another user? (yes/no): no
Goodbye!
#

13.6.2. rmuser

By całkowicie usunąć użytkownika z systemu, możemy skorzystać z rmuser(8). Narzędzie te wykonuje następujące czynności:

  1. Usuwa wpisy użytkownika w crontab(1) (jeśli jakieś są).

  2. Usuwa wszystkie prace at(1) należące do użytkownika.

  3. Niszczy wszystkie procesy użytkownika.

  4. Usuwa użytkownika z lokalnego pliku haseł w systemie.

  5. Usuwa katalog macierzysty użytkownika (jeśli jego właścicielem jest dany użytkownik).

  6. Usuwa pocztę należącą do użytkownika z /var/mail.

  7. Usuwa wszystkie pliki z systemów tymczasowych, np. /tmp, których właścicielem jest użytkownik.

  8. Ostatecznie, usuwa użytkownika z wszystkich grup w /etc/group, do których należy.

    Notatka: Jeśli po usunięciu użytkownika grupa pozostanie pusta a nazwa tej grupy jest taka sama jak nazwa użytkownika, grupa jest również usuwana; dotyczy to przede wszystkim grup użytkowników stworzonych przez adduser(8).



Nie można wykorzystać rmuser(8) do usunięcia konta superużytkownika, gdyż prawie zawsze wskazuje to na masową destrukcję.

Domyślnie wykorzystywany jest tryb interaktywny, który stara upewnić się, że wiemy co robimy.

Przykład 13-2. Tryb interaktywny rmuser

# rmuser jru
Matching password entry:
jru:*:1001:1001::0:0:J. Random User:/home/jru:/usr/local/bin/zsh
Is this the entry you wish to remove? y
Remove user's home directory (/home/jru)? y
Updating password file, updating databases, done.
Updating group file: trusted (removing group jru -- personal group is empty) done.
Removing user's incoming mail file /var/mail/jru: done.
Removing files belonging to jru from /tmp: done.
Removing files belonging to jru from /var/tmp: done.
Removing files belonging to jru from /var/tmp/vi.recover: done.
#

13.6.3. chpass

chpass(1) zmienia w bazie danych użytkowników parametry konta, jak np. hasło, powłokę czy inne szczegółowe informacje.

Jedynie administrator systemu, jako superużytkownik, może zmieniać parametry kont i hasła innych użytkowników za pomocą chpass(1).

Jeśli nie podamy żadnych opcji bądź jedynie nazwę użytkownika, chpass(1) uruchomi edytor informacji o użytkowniku. Po wyjściu z edytora, baza danych użytkowników zostanie aktualizowana.

Notatka: Jeśli nie jesteśmy superużytkownikiem, przed opuszczeniem edytora zostaniemy zapytani o hasło.

Przykład 13-3. Tryb interaktywny chpass superużytkownika

#Changing user database information for jru.
Login: jru
Password: *
Uid [#]: 1001
Gid [# or name]: 1001
Change [month day year]:
Expire [month day year]:
Class:
Home directory: /home/jru
Shell: /usr/local/bin/zsh
Full Name: J. Random User
Office Location:
Office Phone:
Home Phone:
Other information:

Zwykli użytkownicy mogą zmienić jedynie część tych informacji i jedynie własnych kont.

Przykład 13-4. Tryb interaktywny chpass zwykłego użytkownika

#Changing user database information for jru.
Shell: /usr/local/bin/zsh
Full Name: J. Random User
Office Location:
Office Phone:
Home Phone:
Other information:

Notatka: chfn(1) i chsh(1) są jedynie dowiązaniami do chpass(1), podobnie jak ypchpass(1), ypchfn(1) i ypchsh(1). Obsługa NIS jest automatyczna, tak więc dopisywanie yp przed poleceniem nie jest potrzebne. Jeśli jest to dla nas niezrozumiałe, nie martwmy się, Rozdział 27 opisuje NIS szczegółowo.

13.6.4. passwd

Użycie polecenia passwd(1) jest typowym sposobem zmiany własnego hasła, bądź hasła innego użytkownika jako superużytkownik.

Notatka: By uniknąć przypadkowych bądź nieuprawnionych zmian, nim będziemy mogli podać nowe hasło, musimy wpierw wpisać dotychczasowe.

Przykład 13-5. Zmiana własnego hasła

% passwd
Changing local password for jru.
Old password:
New password:
Retype new password:
passwd: updating the database...
passwd: done

Przykład 13-6. Zmiana hasła innego użytkownika jako superużytkownik

# passwd jru
Changing local password for jru.
New password:
Retype new password:
passwd: updating the database...
passwd: done

Notatka: Podobnie jak w przypadku chpass(1), yppasswd(1) jest jedynie dowiązaniem do passwd(1). Tak więc NIS działa poprawnie z obydwoma poleceniami.

13.6.5. pw

pw(8) jest programem wiersza poleceń służącym do tworzenia, usuwania, modyfikowania i wyświetlania użytkowników i grup. Działa jako pośrednik do systemowych plików użytkowników i grup. pw(8) dysponuje bardzo potężnym zestawem opcji, które umożliwiają wykorzystanie go w skryptach powłoki. Jednakże, nowym użytkownikom może wydać się zbyt skomplikowany w porównaniu z innymi przedstawionych tu poleceniami.

Ten i inne dokumenty można pobrać z ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

W przypadku pytań o FreeBSD prosimy przeczytać dostępną dokumentację przed kontaktem z <questions@FreeBSD.org>.
W sprawie zapytań o tę dokumentację prosimy o kontakt z <doc@FreeBSD.org>.