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
.EX /sys/lib/newuserto 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:
.EX 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.