0001 # SPDX-License-Identifier: GPL-2.0-only
0002 config NFSD
0003 tristate "NFS server support"
0004 depends on INET
0005 depends on FILE_LOCKING
0006 depends on FSNOTIFY
0007 select LOCKD
0008 select SUNRPC
0009 select EXPORTFS
0010 select NFS_ACL_SUPPORT if NFSD_V2_ACL
0011 depends on MULTIUSER
0012 help
0013 Choose Y here if you want to allow other computers to access
0014 files residing on this system using Sun's Network File System
0015 protocol. To compile the NFS server support as a module,
0016 choose M here: the module will be called nfsd.
0017
0018 You may choose to use a user-space NFS server instead, in which
0019 case you can choose N here.
0020
0021 To export local file systems using NFS, you also need to install
0022 user space programs which can be found in the Linux nfs-utils
0023 package, available from http://linux-nfs.org/. More detail about
0024 the Linux NFS server implementation is available via the
0025 exports(5) man page.
0026
0027 Below you can choose which versions of the NFS protocol are
0028 available to clients mounting the NFS server on this system.
0029 Support for NFS version 2 (RFC 1094) is always available when
0030 CONFIG_NFSD is selected.
0031
0032 If unsure, say N.
0033
0034 config NFSD_V2_ACL
0035 bool
0036 depends on NFSD
0037
0038 config NFSD_V3_ACL
0039 bool "NFS server support for the NFSv3 ACL protocol extension"
0040 depends on NFSD
0041 select NFSD_V2_ACL
0042 help
0043 Solaris NFS servers support an auxiliary NFSv3 ACL protocol that
0044 never became an official part of the NFS version 3 protocol.
0045 This protocol extension allows applications on NFS clients to
0046 manipulate POSIX Access Control Lists on files residing on NFS
0047 servers. NFS servers enforce POSIX ACLs on local files whether
0048 this protocol is available or not.
0049
0050 This option enables support in your system's NFS server for the
0051 NFSv3 ACL protocol extension allowing NFS clients to manipulate
0052 POSIX ACLs on files exported by your system's NFS server. NFS
0053 clients which support the Solaris NFSv3 ACL protocol can then
0054 access and modify ACLs on your NFS server.
0055
0056 To store ACLs on your NFS server, you also need to enable ACL-
0057 related CONFIG options for your local file systems of choice.
0058
0059 If unsure, say N.
0060
0061 config NFSD_V4
0062 bool "NFS server support for NFS version 4"
0063 depends on NFSD && PROC_FS
0064 select FS_POSIX_ACL
0065 select SUNRPC_GSS
0066 select CRYPTO
0067 select CRYPTO_MD5
0068 select CRYPTO_SHA256
0069 select GRACE_PERIOD
0070 select NFS_V4_2_SSC_HELPER if NFS_V4_2
0071 help
0072 This option enables support in your system's NFS server for
0073 version 4 of the NFS protocol (RFC 3530).
0074
0075 To export files using NFSv4, you need to install additional user
0076 space programs which can be found in the Linux nfs-utils package,
0077 available from http://linux-nfs.org/.
0078
0079 If unsure, say N.
0080
0081 config NFSD_PNFS
0082 bool
0083
0084 config NFSD_BLOCKLAYOUT
0085 bool "NFSv4.1 server support for pNFS block layouts"
0086 depends on NFSD_V4 && BLOCK
0087 select NFSD_PNFS
0088 select EXPORTFS_BLOCK_OPS
0089 help
0090 This option enables support for the exporting pNFS block layouts
0091 in the kernel's NFS server. The pNFS block layout enables NFS
0092 clients to directly perform I/O to block devices accessible to both
0093 the server and the clients. See RFC 5663 for more details.
0094
0095 If unsure, say N.
0096
0097 config NFSD_SCSILAYOUT
0098 bool "NFSv4.1 server support for pNFS SCSI layouts"
0099 depends on NFSD_V4 && BLOCK
0100 select NFSD_PNFS
0101 select EXPORTFS_BLOCK_OPS
0102 help
0103 This option enables support for the exporting pNFS SCSI layouts
0104 in the kernel's NFS server. The pNFS SCSI layout enables NFS
0105 clients to directly perform I/O to SCSI devices accessible to both
0106 the server and the clients. See draft-ietf-nfsv4-scsi-layout for
0107 more details.
0108
0109 If unsure, say N.
0110
0111 config NFSD_FLEXFILELAYOUT
0112 bool "NFSv4.1 server support for pNFS Flex File layouts"
0113 depends on NFSD_V4
0114 select NFSD_PNFS
0115 help
0116 This option enables support for the exporting pNFS Flex File
0117 layouts in the kernel's NFS server. The pNFS Flex File layout
0118 enables NFS clients to directly perform I/O to NFSv3 devices
0119 accessible to both the server and the clients. See
0120 draft-ietf-nfsv4-flex-files for more details.
0121
0122 Warning, this server implements the bare minimum functionality
0123 to be a flex file server - it is for testing the client,
0124 not for use in production.
0125
0126 If unsure, say N.
0127
0128 config NFSD_V4_2_INTER_SSC
0129 bool "NFSv4.2 inter server to server COPY"
0130 depends on NFSD_V4 && NFS_V4_2
0131 help
0132 This option enables support for NFSv4.2 inter server to
0133 server copy where the destination server calls the NFSv4.2
0134 client to read the data to copy from the source server.
0135
0136 If unsure, say N.
0137
0138 config NFSD_V4_SECURITY_LABEL
0139 bool "Provide Security Label support for NFSv4 server"
0140 depends on NFSD_V4 && SECURITY
0141 help
0142
0143 Say Y here if you want enable fine-grained security label attribute
0144 support for NFS version 4. Security labels allow security modules like
0145 SELinux and Smack to label files to facilitate enforcement of their policies.
0146 Without this an NFSv4 mount will have the same label on each file.
0147
0148 If you do not wish to enable fine-grained security labels SELinux or
0149 Smack policies on NFSv4 files, say N.