mount_portalfs(8)
NAME
mount_portalfs - mount the portal daemon
SYNOPSIS
mount_portalfs [-o options] /etc/portal.conf mount_point
DESCRIPTION
- The mount_portalfs utility attaches an instance of the por
- tal daemon to
the global file system namespace. The conventional mount - point is /p.
This command is normally executed by mount(8) at boot time. - The options are as follows:
- -o Options are specified with a -o flag followed by a
- comma sepa
- rated string of options. See the mount(8) man page
- for possible
options and their meanings. - The portal daemon provides an open service. Objects opened
- under the
portal mount point are dynamically created by the portal - daemon according
to rules specified in the named configuration file. Using - this mechanism
allows descriptors such as sockets to be made available in - the file system namespace.
- The portal daemon works by being passed the full pathname of
- the object
being opened. The daemon creates an appropriate descriptor - according to
the rules in the configuration file, and then passes the de - scriptor back
to the calling process as the result of the open system - call.
NAMESPACE
- By convention, the portal daemon divides the namespace into
- sub-namespaces, each of which handles objects of a particular type.
- The following sub-namespaces are currently implemented: fs,
- pipe, tcp,
and tcplisten. - The fs namespace opens the named file, starting back at the
- root directory. This can be used to provide a controlled escape path
- from a
chrooted environment. - The pipe namespace executes the named command, starting back
- at the root
directory. The command's arguments can be provided after - the command's
name, by separating them with spaces or tabs. Files opened - for reading
in the pipe namespace will receive their input from the com - mand's standard output; files opened for writing will send the data of
- write operations to the command's standard input.
- The tcp namespace takes a slash separated hostname and a
- port and creates
an open TCP/IP connection. - The tcplisten namespace takes a slash separated hostname and
- port and
creates a TCP/IP socket bound to the given hostname-port - pair. The hostname may be specified as "ANY" to allow any other host to
- connect to the
socket. A port number of 0 will dynamically allocate a - port, this can be
discovered by calling getsockname(2) with the returned file - descriptor.
Privileged ports can only be bound to by the super-user.
CONFIGURATION FILE
- The configuration file contains a list of rules. Each rule
- takes one
line and consists of two or more whitespace separated - fields. A hash
(``#'') character causes the remainder of a line to be ig - nored. Blank
lines are ignored. - The first field is a pathname prefix to match against the
- requested pathname. If a match is found, the second field tells the dae
- mon what type
of object to create. Subsequent fields are passed to the - creation function.
- # @(#)portal.conf 5.1 (Berkeley) 7/13/92
tcplisten/ tcplisten tcplisten/
tcp/ tcp tcp/
fs/ file fs/
pipe/ pipe pipe/
FILES
/p/*
EXAMPLES
- Display the greeting of the FreeBSD SMTP server.
- head -1 /p/tcp/mx1.freebsd.org/smtp
- Implement a (single-threaded) echo server:
while :
do(exec 3<>/p/tcplisten/ANY/echo && cat -u <&3 >&3)- done
- Gather data from two sources. Verify that two remote files
- are identical:
diff -q '/p/pipe/usr/bin/fetch -o- ftp://ftp1.freebsd.org/pub/FreeBSD/README.TXT' sd.org/pub/FreeB
- SD/README.TXT'
- Scatter data to two sinks. Record a remote CD ISO image and
- calculate
its checksum:
fetch -o - ftp://ftp5.freebsd.org/.../disc.iso
tee '/p/pipe/usr/local/bin/cdrecord -'
md5- Create an XML view of the password file:
ln -s '/p/pipe/usr/local/bin/passwd2xml /etc/passwd'- /etc/passwd.xml"
SEE ALSO
mount(2), unmount(2), fstab(5), mount(8)
- W. Richard Stevens and Jan-Simon Pendry, "Portals in
- 4.4BSD", USENIX 1995
Technical Conference Proceedings, Peter Honeyman, Berkeley, - CA.
CAVEATS
This file system may not be NFS-exported.
HISTORY
- The mount_portalfs utility first appeared in 4.4BSD.
- BSD March 11, 2005