Red Hat Bugzilla – Bug 53265
rpc.statd fails to start.
Last modified: 2007-04-18 12:36:54 EDT
Description of Problem:
Any attempt to start rpc.statd fails with the following error in
nfslock: rpc.statd startup succeeded
rpc.statd: Cannot access current directory after dropping privs:
Version-Release number of selected component (if applicable):
Just run rpc.statd; you can also run the 'nfslock' init script.
Steps to Reproduce:
Just for kicks I tried changing to /tmp and then rpc.statd by hand, and it
still fails with the same error. The error is accurate; an strace of the
process concludes with:
8222 setuid32(0x1d) = 0
8222 getgid32() = 29
8222 getuid32() = 29
8222 access(".", R_OK|W_OK|X_OK) = -1 EACCES (Permission denied)
So, the problem is pretty obvious. rpc.statd changes to uid 29/gid 29
(rpcuser/rpcuser), and tries to chdir() to /var/lib/nfs/statd. The permissions
in /var/lib/nfs look like this:
-rw-r--r-- 1 root root 799 Sep 4 16:21 etab
-rw-r--r-- 1 root root 2077 Sep 5 15:33 rmtab
drwxr-xr-x 4 root root 4096 Sep 5 15:45 statd
-rw-r--r-- 1 root root 1952 Sep 5 14:51 xtab
The statd() directory should be chgrp'd to rpcuser, and then chmod'd to allow
group read/write/execute access.
The nfs-utils RPM should make /var/lib/nfs/statd owned by rpcuser by default.
What happens if you reinstall the nfs-utils RPM?