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)
       and   fossilcons(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

              /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), fossil(4), users(6), auth(8),  fossil‐
       cons(8).



                                                                    NEWUSER(8)