|
To establish a new user on Plan 9, add the user to /adm/users
by running the newuser command on the console of the file server
(see fs(8)). 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
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.
|