Package: nfs-kernel-server
Version: 1:2.8.3-1
Severity: important
Tags: trixie

Dear Maintainer,

I am reporting a regression in Debian 13 (Trixie) that prevents the NFS
server from starting unless Kerberos is configured. This affects both
NFSv4 and NFSv3, even when Kerberos is explicitly disabled and NFSv3 is
forced.

This behavior breaks long-standing compatibility and makes NFS unusable
in common environments where Kerberos is not required.

----------------------------------------------------------------------
STEPS TO REPRODUCE (Minimal Reproducible Test Case)
----------------------------------------------------------------------

1. Install Debian 13 (Trixie) fully updated.
2. Install NFS server:
   apt install nfs-kernel-server nfs-common rpcbind
3. Disable Kerberos:
   echo "NEED_IDMAPD=no" >> /etc/default/nfs-common
   echo "NEED_GSSD=no" >> /etc/default/nfs-common
4. Force NFSv3:
   echo 'RPCNFSDOPTS="--nfs-version 3"' >> /etc/default/nfs-kernel-server
5. Mask Kerberos services:
   systemctl mask rpc-gssd
   systemctl mask rpc-svcgssd
6. Reload systemd:
   systemctl daemon-reload
   systemctl reset-failed
7. Start NFS:
   systemctl restart nfs-kernel-server

----------------------------------------------------------------------
ACTUAL RESULT
----------------------------------------------------------------------

NFS fails to start:

  A dependency job for nfs-server.service failed.

----------------------------------------------------------------------
LOGS (systemctl, journalctl, exportfs)
----------------------------------------------------------------------

systemctl status nfs-server.service:
------------------------------------
nfs-server.service: Job nfs-server.service/start failed with result 
'dependency'.
Dependency failed for nfs-server.service - NFS server and services.

systemctl status rpc-svcgssd:
-----------------------------
ConditionPathExists=/etc/krb5.keytab was not met

systemctl status rpc-gssd:
--------------------------
Job rpc-gssd.service/start failed with result 'dependency'

systemctl status nfs-idmapd:
----------------------------
Job nfs-idmapd.service/start failed with result 'dependency'

journalctl -xeu nfs-idmapd:
---------------------------
nfs-idmapd.service: Job nfs-idmapd.service/start failed with result 'dependency'

exportfs -v:
------------
(no exports shown because nfs-server never starts)

----------------------------------------------------------------------
EXPECTED RESULT
----------------------------------------------------------------------

NFS should start normally when:

- Kerberos is not configured
- NFSv3 is explicitly selected
- gssd/idmapd are disabled
- Kerberos services are masked

This has been the expected behavior in Debian for decades.

----------------------------------------------------------------------
IMPACT
----------------------------------------------------------------------

This regression:

- makes NFS unusable without Kerberos
- breaks NFSv3 entirely
- breaks NFSv4 without security
- affects homelabs, small servers, educational environments
- breaks compatibility with Debian 11/12
- prevents NFS usage in Proxmox VMs and containers
- forces Kerberos even when not desired or configured

----------------------------------------------------------------------
POSSIBLE CAUSE
----------------------------------------------------------------------

The systemd unit `nfs-server.service` appears to enforce hard
dependencies on:

- rpc-gssd.service
- rpc-svcgssd.service
- nfs-idmapd.service
- nfs-mountd.service

even when:

- NEED_GSSD=no
- NEED_IDMAPD=no
- NFSv3 is forced
- Kerberos is not configured
- the services are masked

This suggests a regression in the unit dependency structure.

----------------------------------------------------------------------
SUGGESTED FIX (systemd unit diff)
----------------------------------------------------------------------

Proposed change to /usr/lib/systemd/system/nfs-server.service:

--- nfs-server.service.orig
+++ nfs-server.service
-[Unit]
-Requires=rpc-gssd.service rpc-svcgssd.service nfs-idmapd.service 
nfs-mountd.service
-After=rpc-gssd.service rpc-svcgssd.service nfs-idmapd.service 
nfs-mountd.service
+[Unit]
+ConditionPathExists=!/etc/krb5.keytab
+Wants=nfs-mountd.service
+After=nfs-mountd.service
+# Kerberos services should only be required when Kerberos is configured
+ConditionPathExists=/etc/krb5.keytab

This would restore historical behavior and allow NFSv3 to function
without Kerberos.

----------------------------------------------------------------------
Thank you for your work maintaining Debian.
Please let me know if you need additional logs or testing.


Reply via email to