14.6. Accounts wijzigen

Er zijn vele commando's beschikbaar in de UNIX® omgeving om gebruikersaccounts te manipuleren. De meest gebruikte commando's worden hieronder beschreven, gevolgd door meer gedetailleerde voorbeelden van gebruik.

Commando Samenvatting
adduser(8) Het aanbevolen commandoregelprogramma voor het aanmaken van nieuwe gebruikers.
rmuser(8) Het aanbevolen commandoregelprogramma voor het verwijderen van gebruikers.
chpass(1) Een flexibel hulpprogramma voor het wijzigen van informatie in de gebruikersdatabase.
passwd(1) Een eenvoudig commandoregelprogramma voor het wijzigen van wachtwoorden van gebruikers.
pw(8) Een krachtig en flexibel hulpprogramma voor het wijzigen van alle aspecten van gebruikersaccounts.

14.6.1. adduser

adduser(8) is een eenvoudig programma voor het aanmaken van nieuwe gebruikers. Er worden regels mee toegevoegd aan de systeembestanden passwd en group. Het maakt ook een thuismap voor de nieuwe gebruiker, kopieert de standaard instellingenbestanden (“dotfiles”) uit /usr/share/skel en kan, optioneel, de nieuwe gebruiker een welkomstbericht mailen.

Voorbeeld 14-1. Een gebruiker toevoegen aan 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]:
Home directory permissions (Leave empty for default):
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!
#

Opmerking: Het wachtwoord wat ingegeven wordt, wordt niet getoond, er worden ook geen sterretjes getoond. Zorg ervoor dat het wachtwoord correct ingevuld wordt.

14.6.2. rmuser

Met rmuser(8) kan een gebruiker volledig van een systeem verwijderd worden. rmuser(8) voert de volgende stappen uit:

  1. Verwijdert de crontab(1) van de gebruiker (als die bestaat).

  2. Verwijdert bestaande at(1) taken van de gebruiker.

  3. Stopt alle processen van de gebruiker.

  4. Verwijdert de gebruiker uit het lokale wachtwoordbestand van een systeem.

  5. Verwijdert de thuismap van de gebruiker (als de gebruiker daar eigenaar van is).

  6. Verwijdert de inkomende email voor de gebruiker uit /var/mail.

  7. Verwijdert alle bestanden waar de gebruiker eigenaar van is uit opslaggebieden voor tijdelijke bestanden als /tmp.

  8. Als laatste wordt de gebruikersnaam uit alle groepen in /etc/group waar die lid van was verwijderd.

    Opmerking: Als een groep leeg raakt en de groepsnaam is hetzelfde als de gebruikersnaam, dan wordt de groep verwijderd. Dit is het tegenovergestelde van wat adduser(8) met een unieke groep per gebruiker.

rmuser(8) kan niet gebruikt worden om superuser accounts te verwijderen, omdat dat vrijwel altijd leidt tot vreselijke verwoesting.

Standaard wordt een interactieve modus gebruikt, die ervoor zorgt dat alle stappen bewust worden genomen.

Voorbeeld 14-2. Interactief accounts verwijderen met 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.
#

14.6.3. chpass

chpass(1) wijzigt informatie in de gebruikersdatabase, zoals wachtwoorden, shells en persoonlijke informatie.

Alleen systeembeheerders, zoals de Superuser, mogen de informatie en wachtwoorden voor andere gebruikers wijzigen met chpass(1).

Als er geen opties worden meegegeven, buiten de optionele gebruikersnaam, dan toont chpass(1) een editor waarin de gebruikersinformatie wordt weergegeven. Als de gebruiker de editor verlaat, dan wordt de gebruikersdatabase bijgewerkt met de nieuwe informatie.

Opmerking: Er zal om uw wachtwoord gevraagd worden na het verlaten van de tekstverwerker, als de huidige gebruiker niet de superuser is.

Voorbeeld 14-3. Interactieve chpass door superuser

#Informatie in de gebruikersdatabase wijzigen voor 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:

Een normale gebruiker kan slechts een deel van de bovenstaande informatie wijzen en alleen voor zijn eigen account.

Voorbeeld 14-4. Interactieve chpass door een gewone gebruiker

#Informatie in de gebruikersdatabase wijzigen voor jru.
Shell: /usr/local/bin/zsh
Full Name: J. Random User
Office Location:
Office Phone:
Home Phone:
Other information:

Opmerking: chfn(1) en chsh(1) zijn gewoon links naar chpass(1). Dat geldt ook voor ypchpass(1), ypchfn(1) en ypchsh(1). Ondersteuning voor NIS gaat automatisch; er hoeft dus geen yp voor het commando aangegeven te worden. NIS wordt behandeld in Hoofdstuk 30.

14.6.4. passwd

Met passwd(1) wijzigt een gebruiker gewoonlijk zijn eigen wachtwoord of dat van een andere gebruiker als het door de Superuser wordt uitgevoerd.

Opmerking: Om onbedoelde of ongeautoriseerde wijzigen te voorkomen moet het originele wachtwoord worden ingegeven voordat een nieuw wachtwoord kan worden ingesteld.

Voorbeeld 14-5. Wachtwoord wijzigen

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

Voorbeeld 14-6. Als superuser het wachtwoord van een andere gebruiker wijzigen

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

Opmerking: Net als bij chpass(1) is yppasswd(1) gewoon een link naar passwd(1), dus NIS werkt met beide commando's.

14.6.5. pw

pw(8) is een commandoregelhulpprogramma om gebruikers en groepen te maken, verwijderen, aan te passen en weer te geven. Het werkt als een voorkant voor de systeembestanden met gebruikers en groepen. pw(8) heeft een zeer krachtige set commandoregelopties, waardoor het erg geschikt is om in shell scripts gebruikt te worden. Nieuwe gebruikers vinden het wellicht gecompliceerder dan de andere commando's die hier beschreven worden.