W środowisku systemów UNIX(R) 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. |
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ą.
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ć.
#
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!#
By całkowicie usunąć użytkownika z systemu, możemy skorzystać z rmuser(8). Narzędzie te wykonuje następujące czynności:
Usuwa wpisy użytkownika w crontab(1) (jeśli jakieś są).
Usuwa wszystkie prace at(1) należące do użytkownika.
Niszczy wszystkie procesy użytkownika.
Usuwa użytkownika z lokalnego pliku haseł w systemie.
Usuwa katalog macierzysty użytkownika (jeśli jego właścicielem jest dany użytkownik).
Usuwa pocztę należącą do użytkownika
z /var/mail
.
Usuwa wszystkie pliki z systemów tymczasowych,
np. /tmp
, których właścicielem jest użytkownik.
Ostatecznie, usuwa użytkownika z wszystkich grup
w /etc/group
, do których należy.
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.
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.#
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.
Jeśli nie jesteśmy superużytkownikiem, przed opuszczeniem edytora zostaniemy zapytani o hasło.
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.
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:
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ł 25, Network Servers opisuje NIS szczegółowo.
Użycie polecenia passwd(1) jest typowym sposobem zmiany własnego hasła, bądź hasła innego użytkownika jako superużytkownik.
By uniknąć przypadkowych bądź nieuprawnionych zmian, nim będziemy mogli podać nowe hasło, musimy wpierw wpisać dotychczasowe.
%
passwd
Changing local password for jru. Old password: New password: Retype new password: passwd: updating the database... passwd: done
#
passwd jru
Changing local password for jru. New password: Retype new password: passwd: updating the database... passwd: done
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.
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.
All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/
Questions that are not answered by the
documentation may be
sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.