NFS(네트워크 파일 시스템) 공유를 사용할 때, 사용자는 디렉토리나 파일을 수정할 수 없게 하는 권한 문제에 직면할 수 있습니다. 이 블로그 포스트에서는 Red Hat Enterprise Linux 5.6을 사용하여 디렉토리 권한을 변경할 수 없는 특정 사례를 다룹니다. 문제의 원인, 진단 단계 및 해결책을 살펴보겠습니다.

Linux에서 NFS 공유 권한 문제 해결 방법

환경

  • 운영 체제: Red Hat Enterprise Linux 5.6
  • NFS 클라이언트: NFS 서버에서 공유를 마운트하도록 구성됨.
  • NFS 서버: NFS 내보내기를 제공합니다.

NFS 서버/etc/exports 내보내기 구성

NFS 내보내기는 /etc/exports 파일에서 다음과 같이 구성됩니다:

/xyz/export *(sync,rw,root_squash,anonuid=4294967294,anongid=4294967294,no_subtree_check,fsid=29247)

문제

NFS 공유 내의 파일은 생성하고 수정할 수 있었으나, 디렉토리 권한은 변경할 수 없었습니다. 이는 다음 명령과 그 결과에서 명확하게 나타났습니다:

NFS 공유 마운트

# mount | grep nfs
nfsd on /proc/fs/nfsd type nfsd (rw)
1.1.1.253:/xyz/export on /opt/oracle/foobar002 type nfs (rw,user=oracle,noexec,nosuid,nodev,user,noac,nfsvers=3,tcp,rsize=1048576,wsize=1048576,addr=1.1.1.253)
# ls -ld /opt/oracle/foobar002
drwxrwxrwx 2 root root 2048 Mar 19 09:52 /opt/oracle/foobar002
$ touch /opt/oracle/foobar002/oracle-test.txt
$ ls -l /opt/oracle/foobar002/
total 0
-rw-r--r-- 1 oracle           oinstall         0 Mar 19 15:19 oracle-test.txt
-rw-rw-r-- 1 myuidgid myuidgid 0 Mar 19 15:18 test-2.txt
-rw-r--r-- 1       4294967294       4294967294 0 Mar 19 15:17 test.txt
# chown oracle /opt/oracle/foobar002/
chown: changing ownership of `/opt/oracle/foobar002/': Operation not permitted

디렉토리 권한

# ls -ld /opt/oracle/foobar002
drwxrwxrwx 2 root root 2048 Mar 19 09:52 /opt/oracle/foobar002

파일 생성

$ touch /opt/oracle/foobar002/oracle-test.txt
$ ls -l /opt/oracle/foobar002/
total 0
-rw-r--r-- 1 oracle           oinstall         0 Mar 19 15:19 oracle-test.txt
-rw-r--r-- 1       4294967294       4294967294 0 Mar 19 15:17 test.txt

권한 변경 시도

# chown oracle /opt/oracle/foobar002/
chown: changing ownership of `/opt/oracle/foobar002/': Operation not permitted

원인

디렉토리 권한을 변경할 수 없는 이유는 NFS 서버와 클라이언트 간의 anonuid anongid 값이 일치하지 않아서였습니다. 주요 관찰 내용은 다음과 같습니다:

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
  1. anonuidanongid가 내보내기 옵션에 두 번 나열되었습니다.
  2. root_squash가 사용되어 root 요청이 anonuid=4294967294로 매핑되므로, root ID로 변경을 시도해도 작동하지 않았습니다.
  3. anonuidanongid 값이 서버와 클라이언트 양쪽에서 일치해야 했습니다.

진단 단계

문제를 해결하기 위해 다음 단계를 수행했습니다:

  1. 시스템 보고서를 수집하거나 내보내기 옵션 확인:
  • NFS 클라이언트에서 showmount -e 사용.
  • NFS 서버에서 /etc/exports 파일 검토.
  1. 내보내기 옵션 확인:
   /xyz/export *(sync,rw,root_squash,anonuid=4294967294,anongid=4294967294,no_subtree_check,fsid=29247)

해결책

해결책은 NFS 서버의 내보내기 구성에서 anonuidanongid 값을 수정하는 것이었습니다. 이러한 변경을 수행한 후, 권한 문제가 해결되어 클라이언트의 root 사용자가 필요한 대로 디렉토리 권한을 변경할 수 있게 되었습니다.

결론

NFS 권한 문제는 내보내기 옵션이 잘못 구성되어 발생할 수 있습니다. 서버와 클라이언트에서 anonuidanongid가 일치하도록 하고, root_squash와 같은 옵션의 영향을 이해하는 것이 NFS 작업을 원활하게 수행하는 데 매우 중요합니다. 위의 진단 단계를 따르면 시스템 관리자는 NFS 공유의 권한 관련 문제를 효과적으로 해결할 수 있습니다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.

아마존 해외 구매: 서버, 네트워크, 노트북 구매

Amazon Best Sellers Servers

Amazon Best Sellers Networking

Amazon Best Sellers Laptops

위로 스크롤