This tutorial explains Linux “pwck” command, options and its usage with examples.
pwck verifies the integrity of the system authentication information. All entries in the /etc/passwd and /etc/shadow are checked to see that the entry has the proper format and valid data in each field. The user is prompted to delete entries that are improperly formatted or which have other incorrectable errors. Checks are made to verify that each entry has
– the correct number of fields
– a unique user name
– a valid user and group identifier
– a valid primary group
– a valid home directory
– a valid login shell
The checks for correct number of fields and unique user name are fatal. If the entry has the wrong number of fields, the user will be prompted to delete the entire line. If the user does not answer affirmatively, all further checks are bypassed. An entry with a duplicated user name is prompted for deletion, but the remaining checks will still be made. All other errors are warning and the user is encouraged to run the usermod command to correct the error. The commands which operate on the /etc/passwd file are not able to alter corrupted or duplicated entries. pwck should be used in those circumstances to remove the offending entry.
pwck [-sr] [passwd shadow]
The user may execute the command in read-only mode by specifying the -r flag. This causes all questions regarding changes to be answered no without user intervention.
pwck can also sort entries in /etc/passwd and /etc/shadow by UID. To run it in sort mode pass it -s flag. No checks are performed then, it just sorts.
By default, pwck operates on the files /etc/passwd and /etc/shadow. The user may select alternate files with the passwd and shadow parameters.
To verify that all the users and administrators exist in the user database, and have any errors reported (but not fixed), enter:
# pwck user 'lp': directory '/var/spool/lpd' does not exist user 'news': directory '/var/spool/news' does not exist user 'uucp': directory '/var/spool/uucp' does not exist user 'www-data': directory '/var/www' does not exist user 'list': directory '/var/list' does not exist user 'irc': directory '/var/run/ircd' does not exist user 'gnats': directory '/var/lib/gnats' does not exist user 'nobody': directory '/nonexistent' does not exist user 'syslog': directory '/home/syslog' does not exist user 'usbmux': directory '/home/usbmux' does not exist user 'whoopsie': directory '/nonexistent' does not exist user 'speech-dispatcher': directory '/var/run/speech-dispatcher' does not exist user 'pulse': directory '/var/run/pulse' does not exist user 'hplip': directory '/var/run/hplip' does not exist user 'saned': directory '/home/saned' does not exist pwck: no changes
Sanfoundry Global Education & Learning Series – 1000 Linux Tutorials.