NEWUSER(8) NEWUSER(8)
NAME
newuser - adding a new user
SYNOPSIS
/sys/lib/newuser
DESCRIPTION
To establish a new user on Plan 9, add the user's name to
/adm/users by running the newuser command on the console of
the file server (see users(6) and fs(8)). Next, give the
user a password using the changeuser command on the console
of the authentication server (see auth(8)). At this point,
the user can bootstrap a terminal using the new name and
password. The terminal will only get as far as running rc,
however, as no profile exists for the user.
The rc(1) script /sys/lib/newuser sets up a sensible envi-
ronment for a new user of Plan 9. Once the terminal is run-
ning rc, type
/sys/lib/newuser
to build the necessary directories in /usr/$user and create
a reasonable initial profile in /usr/$user/lib/profile and
plumbing rules in /usr/$user/lib/plumbing (see plumber(4)).
The script then runs the profile which, as its last step,
brings up rio(1). At this point the user's environment is
established and running. (There is no need to reboot.) It
may be prudent at this point to run passwd(1) to change the
password, depending on how the initial password was chosen.
The profile built by /sys/lib/newuser looks like this:
bind -a $home/bin/rc /bin
bind -a $home/bin/$cputype /bin
bind -c tmp /tmp
font = /lib/font/bit/pelm/euro.9.font
switch($service){
case terminal
plumber
upas/fs
echo -n accelerated > '#m/mousectl'
echo -n 'res 3' > '#m/mousectl'
prompt=('term% ' ' ')
fn term%{ $* }
exec rio
case cpu
if (test -e /mnt/term/mnt/wsys) {
# rio already running
bind -a /mnt/term/mnt/wsys /dev
Page 1 Plan 9 (printed 12/19/25)
NEWUSER(8) NEWUSER(8)
echo -n $sysname > /dev/label
}
bind /mnt/term/dev/cons /dev/cons
bind /mnt/term/dev/consctl /dev/consctl
bind -a /mnt/term/dev /dev
prompt=('cpu% ' ' ')
fn cpu%{ $* }
upas/fs
news
if (! test -e /mnt/term/mnt/wsys) {
# cpu call from drawterm
font=/lib/font/bit/pelm/latin1.8.font
exec rio
}
case con
prompt=('cpu% ' ' ')
news
}
Sites may make changes to /sys/lib/newuser that reflect the
properties of the local environment.
Use the -c option of mail(1) to create a mailbox.
SEE ALSO
passwd(1), rio(1), namespace(4), users(6), auth(8), fs(8)
Page 2 Plan 9 (printed 12/19/25)