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.