NFS 클라이언트가 NFS 맵에서 UID를 무시하지 않음

NFS 클라이언트가 NFS 맵에서 UID를 무시하지 않음

6개의 머신, 1개의 NFS 서버, 5개의 클라이언트가 있습니다. 세 개의 클라이언트(Ubuntu 14.04 실행)가 제대로 작동합니다. 12.04를 실행하는 다른 두 개에서는 권한 오류가 발생합니다.

매핑된 클라이언트 컴퓨터에서 ls -l /home/다음을 반환합니다.

drwxr-xr-x 22 testuser     testuser     12288 Oct  9 18:03 testuser

이는 예상되는 권한 설정입니다. testuser이 폴더에 대한 권한이 필요한 사용자입니다.

하지만 에 로그인하면 다음 오류가 발생 testuser합니다 touch /home/testuser/test.txt.

touch: cannot touch `/home/testuser/test.txt': Permission denied

이제 숫자 ID는 ID 문자열과 일치하지 않지만나는 이것이 사실이 될 필요가 없다고 들었습니다.

클라이언트 설정:

cat /sys/module/nfs/parameters/nfs4_disable_idmapping
N 

위 설정을 사용하면 NFS가 숫자 UID 및 GID가 아닌 문자열을 사용하여 사용자 권한을 매핑할 수 있습니다.

cat /etc/idmapd.conf
[General]

Verbosity = 0
Pipefs-Directory = /run/rpc_pipefs
# set your own domain here, if id differs from FQDN minus hostname
Domain = localdomain

[Mapping]

Nobody-User = nobody
Nobody-Group = nogroup

서버 설정:

cat /etc/exports

/raid/nfs/home        server1(rw,sync,no_root_squash,no_subtree_check)
/raid/nfs/home        server2(rw,sync,no_root_squash,no_subtree_check)

12.04 시스템이 제대로 작동하도록 하려면 버그나 추가 단계를 수행해야 합니까? 아니면 그냥 과감하게 업그레이드해야 할까요, 아니면 서버에 맞게 모든 UID를 변경해야 할까요?

답변1

문제는 GETATTR/SETATTR(stat, chown, setacl)을 수행하거나 kerberos가 사용되는 경우에만 idmapd가 관련된다는 것입니다(주체와 ID 매핑용). 그러나 nfs 클라이언트가 auth=sys로 CREATE 요청을 보내면 uid와 gid는 RPC 메시지에서 가져옵니다. 따라서 권한 문제를 해결하려면 서버와 클라이언트에서 uid와 gid가 일치해야 합니다.

관련 정보