While trying things out I found that Kerberos support is still too much in flux, a new auth2-server/clog-client

  • is upcoming, which will do things differently. So I will only describe how to get Coda up and running on Debian with minimal effort.

If you are sensible to data loss read the disclaimer at the bottom of the page first.

Setup Scenario

We have one very small Server hosted at an Internet Service Provider and with very long uptimes:]. ["=hurd"] hosts the [ domain, with a Webserver, and a mailserver with some five user accou nts.

Our team works at geographically different locations and wants to use this Server as a central storing point fo r our shared (and private) documents. So we set up a Coda SCM which holds our files_, and a Kerberos Realm for

  • authentication on this server_. On the notebooks of each members, as well as on the computers at different locations we set up the Kerberos cl ients and the Coda Venus client.

Prepare APT

We use Debian unstable, which will - Real Soon Now (t) - turn into the stable Sarge distribution. We also need

  • to set up the CMU Debian repository so our /etc/apt/sources.list file looks like this:
deb unstable \
    main contrib non-free
deb  unstable/non-US \
    main contrib non-free
deb unstable/

Don't forget to [=apt-get update].

Client Setup

  • as root run:
apt-get install coda-client

You will be asked for a default realm for authentication, type in the domain name of your coda-server in spe, i n my case: [].

Second question: size of the cache for storing files, either leave the default, or increment it up to 300000 as

  • fits the spare size of your harddisk. If you are not asked for the default realm, run:
dpkg-reconfigure coda-client

after installation.

Now you would be ready, if you head a recent kernel and coda support compiled in, or as a module. I recommend:

apt-get install kernel-package libncurses-dev \

cd /usr/src
tar xjf kernel-source-2.6.6.tar.bz2
cd kernel-source-2.6.6
make menuconfig

... find and mark

 Filesystems --->
    Network File Systems --->
       <M> Coda file system support (advanced network fs)
       [ ]   Use a default NLS 

... compile and install the new kernel

make-kpkg clean; make-kpkg kernel-image
cd ..
dpkg -i kernel-image-2.6.6_10.00.Custom_i386.deb
echo coda >> /etc/modules

Make your computer reboot this new kernel and you should be set.

Server setup

  • as root run:
apt-get install coda-server

then you must decide about the disk space you will burn. Just for simplicity (hoo!) we'll use raw disk partiti on, we need three of them,

  1. log partition: 2M -- /dev/hda8
  2. rvm - data partition: 90M -- /dev/hda9
  3. Partition where the actual files are stored: 2.2G /dev/hda10 Use any disk partitioner you like to generate them but be sure to make them at least as big as indicated, or a little bit bigger. Format the 2.2G partition with any file system you like, I use reiserfs] or [=ext3. Maybe

    • you need to reboot before formatting for the kernel to recognice the new partitions. Then create the directory /vicepa, put the line
/dev/hda10    /vicepa   reiserfs    defaults  0   0

into [=/etc/fstab] and [=mount /vicepa].

We need also three authentication tokens, you can generate them with pwgen] (you '''have''' [=pwgen installed , haven't you?)


Invent a coda username and user id you well use for coda administration. The id must not be 0 and it is conven ient if the username ist the same as your standard unix account name. I propose starting with id 5000.

Now you can run


I copy here some crucial questions/answers from the dialog with this script:

Is this the master server, aka the SCM machine? (y/n) y
Enter an id for the SCM server. (hostname clums)
The serverid is a unique number between 0 and 255.
You should avoid 0, 127, and 255.
serverid: 1
Enter the name of the rootvolume (< 32 chars) : coda.root
Enter the uid of this user: 1000
Enter the username of this user: jorge
Are you ready to set up RVM? [yes/no] yes
What is your log partition? /dev/hda8
What is your log size? (enter as e.g. '2M') 2M
What is your data partition (or file)? /dev/hda9
What is the size of you data partition (or file)
[22M, 44M, 90M, 130M, 200M, 315M]: 90M
Proceed, and wipe out old data? [y/n] y
Where shall we store your file data [/vicepa]?
Shall I set up a vicetab entry for /vicepa (y/n) y
Select the maximum number of files for the server.
[256K, 1M, 2M, 16M]:

Note that I just pressed enter at the [/vicepa] question.

Eventually you must start the coda server, do it with:

invoke-rc.d codasrv.init start

The last part of the [=vice-setup] tells you (amongst other things) how to create your root volume. Just copy that command and run it. You need NOT to start up all the servers. The [=init.d] script of the Debian package

  • takes care of that.

User Setup

To set up a new user or group, you must login to the Coda Server as root and run `pdbtool]. To give the user a

  • password, you log in at the Coda Client as the administrative user and use the ["[=coda-client =au] comm and. The [=au] command is actually not contained in the"] package, you can either copy it from the server to the client machine, or install -- but not necessarily set up -- the [=coda-server` package on the client.

au] is in the directory ["=/usr/sbin/"] so it is not on the normal users [=PATH, either create (as root) a sy mlink:

 ln -s /usr/sbin/au /usr/local/bin/au

or copy the program to the [=/usr/bin] directory.

Ok, first let's create two new users and a group for the cell, then let's change the default password (changeme ) of the administrative user to something sensible, and assign the two users a password. As a gift: two brand new passwords from pwgen:


Users need positive numeric id's, we choose to count from 5000 onwards.

Now, we log in to the Coda server as root an run:

nui guest 5000
nui gloria 5001ng magma jorge
ag jorge magma
ag gloria magma
  • nui - create new user with id

  • ng - create new group

  • ag - add (user to) group The users jorge] and [=gloria are now members of the group magma.

We go back to our Coda client, and run

au cp
Your Vice name: jorge
Your password: changeme
User name: jorge
New password: evail0Ah
au nu
Your Vice name: jorge
Your password: evail0Ah
User name: gloria
New password: ae5vieMi
au nu
Your Vice name: jorge
Your password: evail0Ah
User name: guest
New password: guest
  • cp - change password

  • nu - add password to new user You have now a guest user, which you can use to allow anyone else in the Internet to play with (parts of) you r Coda Volume

Coda exploration

Now that we have three users and a running Coda cell we should do something with it. We can for example mimic the testserver Coda Cell at CMU, which has a README] file, visible to the anonymous user, and a directory name d "playground" which is read and writable by the guest user. And finally we create a directory ["=magma"] wher e we hold data only accessible to members of the [=magma group.

clog jorge
Password: evail0Ah
cd /coda/MAGMA.COM.NI
mkdir playground magma
cfs sa -clear playground guest all
cfs sa -clear magma magma all

To create the [=README] file, we just use our favorite editor. This file can not be edited by [=gloria], unles s we add her to the the System:Administrators group.

Where to from here

If you did not run into trouble, you have a simple Coda Cell up and running. Don't put valuable data into it y et, or stay always backed up. There are several things you can and should do:

  • try out replication, by adding (an)other server(s) - adding more volumes (/vicepb /vicepc ...) to the cell - try out the backup facility

Very soon you will run into disconected operation and into conflicts and reparations. All this is subject to t he original Coda Manuals.



The instructions given in this document are derived from my experience of setting up a coda cell. The specific

  • parameters and commands shown, may render your client and your server computer useless by loss of any or all d ata. Do not use this instructions, if you are not sure about taking this risk, and if you are not sufficient f amiliar with your operating system and computer to fully comprehend every step. And first of all: do not blaim

  • me for any damage done to any of your items by following these instructions. Of course, I am always open to corrections and suggestions.


It is wise to do all this, and, for example, convert the playground] and the [=magma directory into mountpoin ts and mount individual volumes on them.