kamid is a FREE, easy-to-use and portable implementation of a 9p file server daemon for UNIX-like systems.
It includes the kamid(8) daemon, a control utility kamictl(8), the kamiftp(1) 9P CLI client and the TLS proxy kamiproxy(1).
When building from a release tarball:
$ ./configure
$ make
# make install # eventually
to build from a git checkout:
$ ./autogen.sh
$ ./configure
$ make
In order to run, the _kamid
user must exists, with /var/empty
as
home directory. A valid configuration file /etc/kamid.conf
is also
needed. kamid must be started with root privileges.
A sample configuration file:
# /etc/kamid.conf
pki localhost cert "/etc/ssl/localhost.crt"
pki localhost key "/etc/ssl/private/localhost.key"
table users { "SHA256:..." => "op" }
listen on localhost port 1337 tls pki localhost auth <users>
Every form of contribution is well accepted! Just send an email or open a pull request (either on Codeberg or GitHub.)
Don't know where to start? Take a look at the TODO file!
kamid is developed primarly on OpenBSD, but it's known to work on Debian, Devuan and NixOS.
Have you ported / compiled kamid on other systems? Cool! I'd be happy to hear about it! I'm particularly interested in the difficulties in doing so to ease the portability.
The regression suite uses sudo (or doas) because it needs root privileges for certain operations. To run the test suite:
$ make test
The regression are written using a custom DSL, ninepscript.
contrib/9ps-mode.el
is the major mode for Emacs.
There's another regression suite written in common lisp in
regress/lisp/9p-test
; it depends on other lisp libraries available
through quicklisp. Make sure to have sbcl and the relevant lisp
dependencies installed, then run
$ make HAVE_LISP=yes test
kamid is released under a BSD-like license. The bulk of the code is under the ISC license, but some file are BSD2 or BSD3.
regress/lisp/9p-test/
(the common lisp regression suite) is released
under the GNU GPLv3+.