Although discouraged in other places, a combined Auth/CPU/Fileserver can be useful.

The historical setup is based on the use case of a network of machines of different capacities: fast CPU servers for execution of programs, machines with "large" disks as fileservers, and around them a swarm of small workstations with little processing power.

Nowadays a single personal computer combines as much or more computing power and disk space as some Plan9 network of machines might have provided in previous times.

An individual user interested in using Plan9 would rather set up one machine then a network to play around with the system or use it on a day to day basis.

Putting the authentication service on the same computer as the fileserver is deemed less secure then separating them on different physical machines. This part of the Plan9 Tutorial expects, that your are taking into account this disadvantage.


At the end of the tutorial, you will have set up Plan9 computer which brings up a rio session for the host owner (Glenda), and features file and authentication services. You can 'drawterm' into the computer as a different user from Windows or Linux, 'cpu' into the computer from a different Plan9 computer, and use the archival file system remotely.

Note: I am writing this chapter while setting up the system, so it will take days (weeks?, years?) until finished.

Overview of installation steps

  1. install a Plan9 terminal with the 9atom CD
  2. compile and test a cpu/auth/fileserver kernel matching your hardware
  3. set up a cpurc, which also includes all termrc stuff, to get a rio environment
  4. set up the authstore and the secstore and start authentication services
  5. set up the fileserver and some user accounts

Step 2: cpu/auth/fileserver kernel

?ToDo: paste diff from pcf to pcafc

  • goto /sys/src/9/pc
  • cp pcf pcafc
  • patch pcafc with above diff, adapt to your hardware configuration
  • mk 'CONF=pcafc'
  • 9fat:
  • cp pcafc.gz /n/9fat ?ToDo: show how to patch plan9.ini

  • reboot: fshalt -r

  • boot into new kernel, fix if needed

Step 3: cpurc

?ToDo: paste diff from my cpurc

Step 4: authservice

  • in cpurc:
    • uncomment the lines with auth/keyfs and auth/cron
    • change the line with aux/listen -q tcp to
      * aux/listen -q -t /rc/bin/service.auth -d /rc/bin/service tcp
  • enable authservice startup
    cd /rc/bin/service
    mv authsrv.tcp567 tcp567
  • follow the instruccions in Plan9Tutorial/AuthServer#authserver for setting up /lib/ndb/auth
  • follow the instrucction in Plan9Tutorial/AuthServer 'hostowner' up to 'hostowners secstore account'

Step 5: fileserver