97 lines
2.9 KiB
ReStructuredText
97 lines
2.9 KiB
ReStructuredText
.. RST source for tnfsd(1) man page. Convert with:
|
|
.. rst2man.py tnfsd.rst > tnfsd.1
|
|
.. rst2man.py comes from the SBo development/docutils package.
|
|
|
|
.. |version| replace:: 20201019
|
|
.. |date| date::
|
|
|
|
=====
|
|
tnfsd
|
|
=====
|
|
|
|
---------------------------------
|
|
trivial network filesystem daemon
|
|
---------------------------------
|
|
|
|
:Manual section: 1
|
|
:Manual group: SlackBuilds.org
|
|
:Date: |date|
|
|
:Version: |version|
|
|
|
|
SYNOPSIS
|
|
========
|
|
|
|
tnfsd **directory** [**-c** *username*]
|
|
|
|
DESCRIPTION
|
|
===========
|
|
|
|
TNFS is a simplified Internet file transfer protocol, designed for
|
|
simplicity and ease of implementation on small systems, such as 8-bit
|
|
computers. It's simpler than NFS, SMB, or FTP. It's similar to TFTP,
|
|
but has features TFTP lacks.
|
|
|
|
**tnfsd** is the server for the TNFS protocol. It listens for clients
|
|
on UDP port 16384. In theory, the protocol supports TCP connections,
|
|
but this hasn't been implemented yet.
|
|
|
|
The mandatory **directory** option is the root of the TNFS filesystem
|
|
tree.
|
|
|
|
The **-c** *username* option requires **tnfsd** to be run as
|
|
*root*. If given, **tnfsd** will **chroot**\(2) to the *directory*,
|
|
then drop its root privileges and run as the *username* user instead.
|
|
|
|
Even without **chroot**, **tnfsd** will not deliberately allow access
|
|
to files outside the *directory*. The **-c** option is a safety net,
|
|
in case there's a bug in **tnfsd** that allows such access (currently,
|
|
no such bug is known of).
|
|
|
|
Note that **tnfsd** can be started by a normal user, since it uses an
|
|
unprivileged UDP port. The **-c** option won't work in this case.
|
|
|
|
**tnfsd** logs various information to standard error. If compiled with
|
|
*-DUSAGE_LOG*, the log includes all mount, umount, and file transfer
|
|
requests including the client IP addresses.
|
|
|
|
LIMITATIONS
|
|
===========
|
|
|
|
**tnfsd** is designed to be simple, so the following list of
|
|
limitations should not be read as complaints or feature requests.
|
|
|
|
There is no way to run multiple **tnfsd** instances on the same
|
|
host, not even on a multi-homed host. The default UDP port cannot
|
|
be changed; neither can the IP address used for binding (which is
|
|
*0.0.0.0*, aka *INADDR_ANY*). Also, there's no concept of virtual
|
|
hosts. If you *really* want to run multiple instances, use containers
|
|
or virtual machines.
|
|
|
|
There's no way to limit which hosts may access **tnfsd** using any
|
|
mechanism such as **tcpd**\(8). Firewall rules may be used instead,
|
|
e.g. **iptables**\(8).
|
|
|
|
There isn't a way to share a directory read-only with the current
|
|
**tnfsd** implementation. However, filesystem permissions can be used
|
|
to prevent the daemon from writing to the shared directory.
|
|
|
|
COPYRIGHT
|
|
=========
|
|
|
|
See the file /usr/doc/tnfsd-|version|/COPYING for license information.
|
|
|
|
AUTHORS
|
|
=======
|
|
|
|
tnfsd was written by Dylan Smith.
|
|
|
|
This man page written for the SlackBuilds.org project
|
|
by B. Watson, and is licensed under the WTFPL.
|
|
|
|
SEE ALSO
|
|
========
|
|
|
|
**tnfs-fuse**\(1), **fujinet-pc**\(1)
|
|
|
|
/usr/doc/tnfsd-|version|/tnfs-protocol.md
|