February 2000
If you maintain a UNIXish system of any sort, you will
invariably have to add and/or delete user accounts, even if you have a
home system. In extremely large organizations, you may employ tools
such as NIS+ for network based user management, however, in smaller scale systems, accounts are most likely controlled at each system.
First
a general overview of the tools followed by an example of adding,
modifying then removing a pretend user. The column will not cover
group management. That will be addressed in a later column.
There are many user management tools available both in GUI and TUI form available, it is my feeling (and preference) that the command line tools provided are much more succinct in comparison.
The most common commands used to modify, create and delete user accounts are:
useraddusermodchfnchshpasswduserdelThese are a lot of commands to cover so I will look only at the bare neccesities of each. Please consult your man pages for more information.
The useradd command is pretty self explanatory, it is used to add a new user to the system. Some of the options are:
In addition to those options you can also set an expire date, inactive time, default group and more.
Following is some sample syntax from the example at the end of the column:
useradd -g ap -s /usr/bin/csh -m /home/udoe -mk /home/mdoe -p ax_01 udoe
Utilizing the usermod command, one can change many of the same aspects set with useradd (actually the options are the same). Some of the options are:
Following is some sample syntax from the example at the end of the column:
Expire and inactivity parameters may also be set to accounts with usermod.
usermod -s /usr/bin/tcsh udoe
chfn can change (or set as the case may be) information
about the user that is very specific and handy. Following is a list of
some options:
Following is some sample syntax from the example at the end of the column:
chfn -f Uni\ Doe -h 5551234 udoe
What chsh can do is quite simply change a login shell
for a specified account. It comes with one option and argument, -s for
the new login shell and the username.
Following is some sample syntax from the example at the end of the column:
chsh -s /usr/bin/tcsh udoe
Aside from the obvious changing of one's password (or if you are root changing a user password) the passwd command can also set a few account options:
Following is some sample syntax from the example at the end of the column:
passwd -f -x 60 -w 58 udoe
Another relatively obvious one, userdel removes a user
from the system. It comes with the -r option which states to also
remove the user's former home directory and all of its contents.
Nothing illustrates a task better than a sample session. First a new user will be added and modified with all of the modifying commands, then removed. Here is all of the information about our user:
Name: Uni Doe Work Phone: 555-1234 Group: ap
The rest we will simply assume, first, we will add the user with useradd:
useradd -g ap -s /usr/bin/csh -m /home/udoe -mk /home/mdoe -p ax_01 udoe
Uni Doe has been added to the system and given an initial password. The initial group has been set to ap and login shell is csh.
Now it is time to set up the passwd restrictions:
passwd -f -x 60 -w 58 udoe
Now, udoe must change their password the next time they login. The password will expire in 60 days but udoe will be warned in 58 days. [ 1 ]
Next it is time to fill in some extra information that we have available about udoe, that being the full name and home phone number:
chfn -f Uni\ Doe -h 5551234 udoe
Now the home phone and full name of udoe is recorded.
For the sake of argument (and example) udoe has decided their login shell just does not cut the mustard. They prefer tcsh instead. Now we must change the login shell. To perform this we can use one of two methods, first, our usermod command:
usermod -s /usr/bin/tcsh udoe
or secondly, the chsh command:
chsh -s /usr/bin/tcsh udoe
Unfortunately, we discover udoe is a spy for the competition, or whatever and is no longer in the organization. So we decide to userdel the account but leave the files in the home directory for their supervisor and the administrator to mull over:
userdel udoe
There are a variety of ways to modify user accounts from the command
line. While there are many user management tools out there, you never
know when you will need to modify accounts from the command line such
as when you are dialed up from home perhaps on a serial line
connection. With a little practice, they all become as second nature as
ls.
(based on last 2 months log reports)