share(8) on Solnix vs Linux and the BSDs

share is the illumos command at /usr/sbin/share. It exports a directory over a remote filesystem type, NFS by default per share_nfs(8), and takes the path and options on its command line. Linux exportfs keeps a table fed from /etc/exports. The BSDs have no equivalent command in the bundle: they use the exports(5) file read by mountd(8), with different option syntax.

What Solnix runs

A default Solnix system runs the illumos share at /usr/sbin/share. No other variants are shipped. Related commands named on the page: unshare(8), shareall(8), share_nfs(8), mountd(8) and nfsd(8). The page does not describe their options.

Differences

Compared withTopicWhat differs
FreeBSD, OpenBSD, NetBSDcommand vs. config fileSolnix share takes the path and options on its command line. The FreeBSD, OpenBSD and NetBSD pages in the bundle describe only the exports file, with no command to add an export. NetBSD says mountd(8) reads the file on start and on SIGHUP.
Source: Solnix share(8) SYNOPSIS; FreeBSD exports(5) DESCRIPTION; OpenBSD exports(5) DESCRIPTION; NetBSD exports(5) DESCRIPTION
Linuxpath argument formSolnix share takes a bare pathname and selects the filesystem type with -F. Linux exportfs takes client:/path pairs, and -o options apply to them. Solnix lists clients inside the option, as in -o rw=client:client.
Source: Solnix share(8) SYNOPSIS, -o; Linux exportfs(8) SYNOPSIS, -o
LinuxpersistenceSolnix share -p makes the share survive reboots, and the page says nothing about a config file. Linux exportfs initialises its table from /etc/exports and /etc/exports.d with -a. It can also add or delete exports without editing those files.
Source: Solnix share(8) -p; Linux exportfs(8) DESCRIPTION
Linuxno-argument and listing behaviourSolnix share with no arguments lists all shared filesystems. Linux exportfs with no arguments or only -v displays the current export list, and -s prints it in /etc/exports format. The Solnix page has no equivalent of -s.
Source: Solnix share(8) DESCRIPTION; Linux exportfs(8) SYNOPSIS, -v, -s
Linuxre-sharing replaces optionsOn Solnix, a second share of the same filesystem replaces the earlier options. To add a client, repeat the whole list, e.g. rw=usera:userb. The Linux page says nothing about this behaviour.
Source: Solnix share(8) NOTES; Linux exportfs(8) OPTIONS
Linuxunshare and re-exportLinux exportfs has -u to unexport, -r to resynchronise with /etc/exports and -f to flush the kernel table. The Solnix share page has no such flags. It points to unshare(8) and shareall(8) in SEE ALSO, but the bundle does not describe them.
Source: Linux exportfs(8) -u, -r, -f; Solnix share(8) SEE ALSO
OpenBSD, NetBSD-o means different thingsSolnix share -o introduces a comma-separated option list (rw, ro, rw=..., ro=...). In OpenBSD and NetBSD exports files, -o is a synonym for -ro, meaning read-only. Do not carry the letter between the tools.
Source: Solnix share(8) -o; OpenBSD exports(5) -ro; NetBSD exports(5) -o
FreeBSD, OpenBSD, NetBSDread-only and access syntaxSolnix writes ro, ro=client:client, rw or rw=client:client, and rw is the default for all clients. The BSD exports files use -ro for read-only and put hosts, netgroups or -network after the options. OpenBSD says read/write is the default.
Source: Solnix share(8) -o; OpenBSD exports(5) -ro, third component; NetBSD exports(5) -ro; FreeBSD exports(5) DESCRIPTION
FreeBSD, OpenBSD, NetBSDroot mapping defaultsThe BSD pages document -maproot and -mapall. Without them, remote root maps to 65534:65533 on FreeBSD and -2:-2 on OpenBSD and NetBSD. The Solnix share page documents only rw/ro options, so check share_nfs(8) for identity mapping.
Source: FreeBSD exports(5) -maproot; OpenBSD exports(5); NetBSD exports(5); Solnix share(8) -o
NetBSD-r is not read-onlyIn NetBSD exports, -r is a synonym for -maproot and is explicitly not a synonym for -ro. FreeBSD and OpenBSD also call -r a synonym for -maproot. Solnix share has no -r.
Source: NetBSD exports(5) -r; FreeBSD exports(5); OpenBSD exports(5); Solnix share(8) SYNOPSIS
all fourdefault filesystem typeIf -F is omitted, Solnix uses the first type listed in /etc/dfs/fstypes. The Linux and BSD pages in the bundle describe only NFS and have no -F option.
Source: Solnix share(8) DESCRIPTION; Linux exportfs(8) SYNOPSIS

Everyday tasks

TaskSolnixLinuxFreeBSDOpenBSDNetBSD
list current exportsshareexportfs -v———
export a directory read-only to listed clientsshare -F nfs -o ro=client1:client2 /pathexportfs -o ro client:/pathedit exports(5): /path -ro hostedit exports(5): /path -ro hostedit exports(5): /path -ro host
make an export survive rebootshare -p ...add to /etc/exports or /etc/exports.d, then exportfs -akeep it in the exports filekeep it in the exports filekeep it in the exports file
unexportsee unshare(8)exportfs -u client:/path———
re-read export configurationsee shareall(8)exportfs -r——send SIGHUP to mountd(8)

Standards

  • POSIX: share is not a POSIX.1-2024 utility.
  • FreeBSD: exports(5) describes the NFS mount protocol per RFC1094, Appendix A, and the NFS Version 3 Specification, Appendix I.
  • OpenBSD: exports(5) describes the NFS mount protocol per RFC 1094, Appendix A, and RFC 1813, Appendix I.

Writing portable scripts

  • Do not use one share or exportfs command line across systems. Keep a per-OS step: share on Solnix, exportfs or /etc/exports on Linux, and the exports file plus mountd on the BSDs.
  • Do not rely on the letter -o or -r meaning the same in share, exportfs and exports files. Check the page for each system.

Every difference here is taken from the manual pages linked above: Solnix's published page, Linux (man-pages and the GNU and util-linux manuals), FreeBSD, OpenBSD and NetBSD. Each row names its source. Where a manual is silent, this page is too. Compiled 2026-10-26. Found a mistake? Mail hackers@lists.solnix.io.