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 to
/adm/users
by running the
uname
command on the console of the file server
(see
users(6)).
Next, give the user a password using
auth/changeuser
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 environment for a new user of Plan 9.
Once the terminal is running
rc,
type
/sys/lib/newuser
to build the necessary directories in
/usr/$user,
create
/mail/box/$user/mbox,
/cron/$user/cron,
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
wsys = /mnt/term^`{cat /mnt/term/env/wsys}
bind -a /mnt/term/mnt/wsys /dev
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
auth/factotum
plumber
exec rio
}
case con
prompt=('cpu% ' ' ')
news
}
Sites may make changes to
/sys/lib/newuser
that reflect the properties of the local environment.
SEE ALSO
passwd(1),
rio(1),
namespace(4),
users(6),
auth(8).