man(1) Manual page archive


     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's name to
          /adm/users by running the newuser command on the console of
          the file server (see users(6) and fs(8)). Next, give the
          user a password using the changeuser command 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 envi-
          ronment for a new user of Plan 9.  Once the terminal is run-
          ning rc, type

               /sys/lib/newuser

          to build the necessary directories in /usr/$user and create
          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
                         bind -a /mnt/term/mnt/wsys /dev

     NEWUSER(8)                                             NEWUSER(8)

                         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
                         exec rio
                    }
               case con
                    prompt=('cpu% ' '   ')
                    news
               }

          Sites may make changes to /sys/lib/newuser that reflect the
          properties of the local environment.

          Use the -c option of mail(1) to create a mailbox.

     SEE ALSO
          passwd(1), rio(1), namespace(4), users(6), auth(8), fs(8)