fuse9p - Man Page

filesystem client for 9p2000.u servers

Synopsis

mounting
fuse9p [-dPv] [-c mode] [-k file] [-l user] [-p port] [-t secs] [-U uid_map] [-G gid_map] [user@]server[:port] mountpoint

unmounting
fusermount -u mountpoint

Description

9p2000 is a file/RPC protocol developed for Plan9 operationg system. Due to its extreme simplicity it can be used to embed file servers in different applications to provide access to the internal structures and API in runtime. 9p filesystem can be mounted as well with the kernel FS implementation, but the kernel v9fs module does not support client authentication. Exporting a read/write filesystem without any authentication is a serious issue. So, if you want to export FS with authentication enabled, you have to use a client that supports it, like this fuse9p implementation.

Another difference from the kernel v9fs is a protocol optimizations that allow fuse9p to work faster, avoiding unnecessary request.

Options

-c mode

Authentication mode. Now only pki mode is supported by fuse9p.

-d

Turn on debug and run in foreground. Please note, that in this mode you can not stop fuse9p with Ctrl-C, you should use fusermount -u.

-G gid_map

Turn on gid mapping (see Uid/Gid Mapping below)

-k file

Path to the private RSA key file. Implies -c pki.

-l user

User name to use in FS Tattach command.

-p port

Server TCP port, if it differs from the default 9p.

-P

Stay connected even in the case of network errors

-t secs

Timeout (in seconds) for the 9p socket. By default it is 10 seconds.

-G gid_map

Turn on gid mapping (see Uid/Gid Mapping below)

-v

Print py9p version

Limitations

Current fuse9p implementation does not support:

* named pipes
* UNIX sockets
* hard linking

Any other functionality can be limited; if so, report an issue to the project's bugtracker.

Authentication

pki mode

PKI authentication mode uses standard SSH RSA keys. The server should have the public one, the client should use the corresponding private key. If the private key file location is not set up by -k option, fuse9p tries to load it from /home/${user}/.ssh/id_rsa. If the user is not set up by -l option or in the server spec, fuse9p uses $USER environment variable.

Reconnection

Being started with -P option, fuse9p tries to reconnect to the server, if the connection is lost. When there is no connection, in this mode fuse9p provides empty mount point. All operations on open files will return EIO or ENOENT.

fuse9p reconnect interval increases with each iteration, it grows by power of 2: 2, 4, 8, 16 etc. seconds up to the some limit. Each file stat() or directory listing call resets the interval back to 2 seconds.

Since the reconnection is running asynchronously, you can get empty mount point even if the server became reachable; if so, just repeat the directory listing call.

Uid/Gid Mapping

Often, uids/gids on the server and client side are not the same. This feature allows you to map server's uids/gids into client's ones in the way like this:

   ... -U "{1000: 500, 1001: 505}" -G "{1000: 500}" ...

Please note, that server's uid/gid goes first.

See Also

ssh-keygen(1), 9pfs

Authors

* Peter V. Saveliev <peet@redhat.com> -- fuse9p author, py9p library maintainer
* Andrey Mirtchovski <aamirtch@ucalgary.ca> -- py9p library author

Referenced By

9pfs(1).

Peter V. Saveliev <peet@redhat.com>