Ubuntu Server is like any Linux variety, and has full multi-user capabilities, and a common task on any server is adding users.

useradd

The useradd command will let you add a new user easily from the command line:

useradd <username>

This command adds the user, but without any extra options your user won't have a password or a home directory.

Note: if you get a message saying that the command is not found, try using the full path, like this:

/usr/sbin/useradd <username>

You can use the -d option to set the home directory for the user. The -m option will force useradd to create the home directory. We'll try creating a user account with those options, and then use the passwd command to set the password for the account. You can alternatively set a password using -p on the useradd command, but I prefer to set the password using passwd.

sudo useradd -d /home/testuser -m testuser

sudo passwd testuser

This will create the user named testuser and give them their own home directory in /home/testuser. The files in the new home directory are copied from the /etc/skel folder, which contains default home directory files. If you wanted to set default values for your users, you would do so by modifying or adding files in that directory. If we take a look at the new home directory for the user:

geek@ubuntuServ:/etc/skel$ ls -la /home/testuser

total 20

drwxr-xr-x 2 testuser testuser 4096 2006-12-15 11:34 .

drwxr-xr-x 5 root root 4096 2006-12-15 11:37 ..

-rw-r--r-- 1 testuser testuser 220 2006-12-15 11:34 .bash_logout

-rw-r--r-- 1 testuser testuser 414 2006-12-15 11:34 .bash_profile

-rw-r--r-- 1 testuser testuser 2227 2006-12-15 11:34 .bashrc

You'll notice that there are bash scripts in this directory. If you wanted to set default path options for all new users, you would do so by modifying the files in /etc/skel, which would then be used to create these files by the useradd command.

adduser

The adduser command is even easier than the useradd command, because it prompts you for each piece of information. I find it slightly funny that there are two virtually identically named commands that do the same thing, but that's linux for you. Here's the syntax:

adduser <username>

Example:

geek@ubuntuServ:/etc/skel$ sudo adduser thegeek

Password:

Adding user `thegeek'...

Adding new group `thegeek' (1004).

Adding new user `thegeek' (1004) with group `thegeek'.

Creating home directory `/home/thegeek'.

Copying files from `/etc/skel'

Enter new UNIX password:

Retype new UNIX password:

No password supplied

Enter new UNIX password:

Retype new UNIX password:

passwd: password updated successfully

Changing the user information for thegeek

Enter the new value, or press ENTER for the default

Full Name []: The Geek

Room Number []: 0

Work Phone []: 555-1212

Home Phone []: 555-1212

Other []:

Is the information correct? [y/N] y