162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ciconfig NFSD 362306a36Sopenharmony_ci tristate "NFS server support" 462306a36Sopenharmony_ci depends on INET 562306a36Sopenharmony_ci depends on FILE_LOCKING 662306a36Sopenharmony_ci depends on FSNOTIFY 762306a36Sopenharmony_ci select LOCKD 862306a36Sopenharmony_ci select SUNRPC 962306a36Sopenharmony_ci select EXPORTFS 1062306a36Sopenharmony_ci select NFS_ACL_SUPPORT if NFSD_V2_ACL 1162306a36Sopenharmony_ci select NFS_ACL_SUPPORT if NFSD_V3_ACL 1262306a36Sopenharmony_ci depends on MULTIUSER 1362306a36Sopenharmony_ci help 1462306a36Sopenharmony_ci Choose Y here if you want to allow other computers to access 1562306a36Sopenharmony_ci files residing on this system using Sun's Network File System 1662306a36Sopenharmony_ci protocol. To compile the NFS server support as a module, 1762306a36Sopenharmony_ci choose M here: the module will be called nfsd. 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci You may choose to use a user-space NFS server instead, in which 2062306a36Sopenharmony_ci case you can choose N here. 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ci To export local file systems using NFS, you also need to install 2362306a36Sopenharmony_ci user space programs which can be found in the Linux nfs-utils 2462306a36Sopenharmony_ci package, available from http://linux-nfs.org/. More detail about 2562306a36Sopenharmony_ci the Linux NFS server implementation is available via the 2662306a36Sopenharmony_ci exports(5) man page. 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ci Below you can choose which versions of the NFS protocol are 2962306a36Sopenharmony_ci available to clients mounting the NFS server on this system. 3062306a36Sopenharmony_ci Support for NFS version 3 (RFC 1813) is always available when 3162306a36Sopenharmony_ci CONFIG_NFSD is selected. 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci If unsure, say N. 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ciconfig NFSD_V2 3662306a36Sopenharmony_ci bool "NFS server support for NFS version 2 (DEPRECATED)" 3762306a36Sopenharmony_ci depends on NFSD 3862306a36Sopenharmony_ci default n 3962306a36Sopenharmony_ci help 4062306a36Sopenharmony_ci NFSv2 (RFC 1094) was the first publicly-released version of NFS. 4162306a36Sopenharmony_ci Unless you are hosting ancient (1990's era) NFS clients, you don't 4262306a36Sopenharmony_ci need this. 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ci If unsure, say N. 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ciconfig NFSD_V2_ACL 4762306a36Sopenharmony_ci bool "NFS server support for the NFSv2 ACL protocol extension" 4862306a36Sopenharmony_ci depends on NFSD_V2 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ciconfig NFSD_V3_ACL 5162306a36Sopenharmony_ci bool "NFS server support for the NFSv3 ACL protocol extension" 5262306a36Sopenharmony_ci depends on NFSD 5362306a36Sopenharmony_ci help 5462306a36Sopenharmony_ci Solaris NFS servers support an auxiliary NFSv3 ACL protocol that 5562306a36Sopenharmony_ci never became an official part of the NFS version 3 protocol. 5662306a36Sopenharmony_ci This protocol extension allows applications on NFS clients to 5762306a36Sopenharmony_ci manipulate POSIX Access Control Lists on files residing on NFS 5862306a36Sopenharmony_ci servers. NFS servers enforce POSIX ACLs on local files whether 5962306a36Sopenharmony_ci this protocol is available or not. 6062306a36Sopenharmony_ci 6162306a36Sopenharmony_ci This option enables support in your system's NFS server for the 6262306a36Sopenharmony_ci NFSv3 ACL protocol extension allowing NFS clients to manipulate 6362306a36Sopenharmony_ci POSIX ACLs on files exported by your system's NFS server. NFS 6462306a36Sopenharmony_ci clients which support the Solaris NFSv3 ACL protocol can then 6562306a36Sopenharmony_ci access and modify ACLs on your NFS server. 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_ci To store ACLs on your NFS server, you also need to enable ACL- 6862306a36Sopenharmony_ci related CONFIG options for your local file systems of choice. 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_ci If unsure, say N. 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_ciconfig NFSD_V4 7362306a36Sopenharmony_ci bool "NFS server support for NFS version 4" 7462306a36Sopenharmony_ci depends on NFSD && PROC_FS 7562306a36Sopenharmony_ci select FS_POSIX_ACL 7662306a36Sopenharmony_ci select RPCSEC_GSS_KRB5 7762306a36Sopenharmony_ci select CRYPTO 7862306a36Sopenharmony_ci select CRYPTO_MD5 7962306a36Sopenharmony_ci select CRYPTO_SHA256 8062306a36Sopenharmony_ci select GRACE_PERIOD 8162306a36Sopenharmony_ci select NFS_V4_2_SSC_HELPER if NFS_V4_2 8262306a36Sopenharmony_ci help 8362306a36Sopenharmony_ci This option enables support in your system's NFS server for 8462306a36Sopenharmony_ci version 4 of the NFS protocol (RFC 3530). 8562306a36Sopenharmony_ci 8662306a36Sopenharmony_ci To export files using NFSv4, you need to install additional user 8762306a36Sopenharmony_ci space programs which can be found in the Linux nfs-utils package, 8862306a36Sopenharmony_ci available from http://linux-nfs.org/. 8962306a36Sopenharmony_ci 9062306a36Sopenharmony_ci If unsure, say N. 9162306a36Sopenharmony_ci 9262306a36Sopenharmony_ciconfig NFSD_PNFS 9362306a36Sopenharmony_ci bool 9462306a36Sopenharmony_ci 9562306a36Sopenharmony_ciconfig NFSD_BLOCKLAYOUT 9662306a36Sopenharmony_ci bool "NFSv4.1 server support for pNFS block layouts" 9762306a36Sopenharmony_ci depends on NFSD_V4 && BLOCK 9862306a36Sopenharmony_ci select NFSD_PNFS 9962306a36Sopenharmony_ci select EXPORTFS_BLOCK_OPS 10062306a36Sopenharmony_ci help 10162306a36Sopenharmony_ci This option enables support for the exporting pNFS block layouts 10262306a36Sopenharmony_ci in the kernel's NFS server. The pNFS block layout enables NFS 10362306a36Sopenharmony_ci clients to directly perform I/O to block devices accessible to both 10462306a36Sopenharmony_ci the server and the clients. See RFC 5663 for more details. 10562306a36Sopenharmony_ci 10662306a36Sopenharmony_ci If unsure, say N. 10762306a36Sopenharmony_ci 10862306a36Sopenharmony_ciconfig NFSD_SCSILAYOUT 10962306a36Sopenharmony_ci bool "NFSv4.1 server support for pNFS SCSI layouts" 11062306a36Sopenharmony_ci depends on NFSD_V4 && BLOCK 11162306a36Sopenharmony_ci select NFSD_PNFS 11262306a36Sopenharmony_ci select EXPORTFS_BLOCK_OPS 11362306a36Sopenharmony_ci help 11462306a36Sopenharmony_ci This option enables support for the exporting pNFS SCSI layouts 11562306a36Sopenharmony_ci in the kernel's NFS server. The pNFS SCSI layout enables NFS 11662306a36Sopenharmony_ci clients to directly perform I/O to SCSI devices accessible to both 11762306a36Sopenharmony_ci the server and the clients. See draft-ietf-nfsv4-scsi-layout for 11862306a36Sopenharmony_ci more details. 11962306a36Sopenharmony_ci 12062306a36Sopenharmony_ci If unsure, say N. 12162306a36Sopenharmony_ci 12262306a36Sopenharmony_ciconfig NFSD_FLEXFILELAYOUT 12362306a36Sopenharmony_ci bool "NFSv4.1 server support for pNFS Flex File layouts" 12462306a36Sopenharmony_ci depends on NFSD_V4 12562306a36Sopenharmony_ci select NFSD_PNFS 12662306a36Sopenharmony_ci help 12762306a36Sopenharmony_ci This option enables support for the exporting pNFS Flex File 12862306a36Sopenharmony_ci layouts in the kernel's NFS server. The pNFS Flex File layout 12962306a36Sopenharmony_ci enables NFS clients to directly perform I/O to NFSv3 devices 13062306a36Sopenharmony_ci accessible to both the server and the clients. See 13162306a36Sopenharmony_ci draft-ietf-nfsv4-flex-files for more details. 13262306a36Sopenharmony_ci 13362306a36Sopenharmony_ci Warning, this server implements the bare minimum functionality 13462306a36Sopenharmony_ci to be a flex file server - it is for testing the client, 13562306a36Sopenharmony_ci not for use in production. 13662306a36Sopenharmony_ci 13762306a36Sopenharmony_ci If unsure, say N. 13862306a36Sopenharmony_ci 13962306a36Sopenharmony_ciconfig NFSD_V4_2_INTER_SSC 14062306a36Sopenharmony_ci bool "NFSv4.2 inter server to server COPY" 14162306a36Sopenharmony_ci depends on NFSD_V4 && NFS_V4_2 14262306a36Sopenharmony_ci help 14362306a36Sopenharmony_ci This option enables support for NFSv4.2 inter server to 14462306a36Sopenharmony_ci server copy where the destination server calls the NFSv4.2 14562306a36Sopenharmony_ci client to read the data to copy from the source server. 14662306a36Sopenharmony_ci 14762306a36Sopenharmony_ci If unsure, say N. 14862306a36Sopenharmony_ci 14962306a36Sopenharmony_ciconfig NFSD_V4_SECURITY_LABEL 15062306a36Sopenharmony_ci bool "Provide Security Label support for NFSv4 server" 15162306a36Sopenharmony_ci depends on NFSD_V4 && SECURITY 15262306a36Sopenharmony_ci help 15362306a36Sopenharmony_ci 15462306a36Sopenharmony_ci Say Y here if you want enable fine-grained security label attribute 15562306a36Sopenharmony_ci support for NFS version 4. Security labels allow security modules like 15662306a36Sopenharmony_ci SELinux and Smack to label files to facilitate enforcement of their policies. 15762306a36Sopenharmony_ci Without this an NFSv4 mount will have the same label on each file. 15862306a36Sopenharmony_ci 15962306a36Sopenharmony_ci If you do not wish to enable fine-grained security labels SELinux or 16062306a36Sopenharmony_ci Smack policies on NFSv4 files, say N. 161