glenda.party
term% ls -F
term% cat index.txt
NEWUSER(8)                  System Manager's Manual                 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 run‐
       ning 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 ex‐
       ists 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 estab‐
       lished  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).



                                                                    NEWUSER(8)