Index: etc/defaults/rc.conf =================================================================== --- etc/defaults/rc.conf +++ etc/defaults/rc.conf @@ -325,6 +325,7 @@ nfs_access_cache="60" # Client cache timeout in seconds nfs_server_enable="NO" # This host is an NFS server (or NO). nfs_server_flags="-u -t" # Flags to nfsd (if enabled). +nfs_server_managegids="NO" # The NFS server maps gids for AUTH_SYS (or NO). mountd_enable="NO" # Run mountd (or NO). mountd_flags="-r" # Flags to mountd (if NFS server enabled). weak_mountd_authentication="NO" # Allow non-root mount requests to be served. Index: etc/rc.d/nfsd =================================================================== --- etc/rc.d/nfsd +++ etc/rc.d/nfsd @@ -32,10 +32,13 @@ sysctl vfs.nfsd.nfs_privport=0 > /dev/null fi - if checkyesno nfsv4_server_enable; then + if checkyesno nfsv4_server_enable || \ + checkyesno nfs_server_managegids; then sysctl vfs.nfsd.server_max_nfsvers=4 > /dev/null force_depend nfsuserd || err 1 "Cannot run nfsuserd" - else + fi + + if ! checkyesno nfsv4_server_enable; then echo 'NFSv4 is disabled' sysctl vfs.nfsd.server_max_nfsvers=3 > /dev/null fi Index: etc/rc.d/nfsuserd =================================================================== --- etc/rc.d/nfsuserd +++ etc/rc.d/nfsuserd @@ -15,5 +15,14 @@ sig_stop="USR1" load_rc_config $name +start_precmd="nfsuserd_precmd" + +nfsuserd_precmd() +{ + if checkyesno nfs_server_managegids; then + rc_flags="-manage-gids ${nfsuserd_flags}" + fi + return 0 +} run_rc_command "$1"