실습 내용

1. NFS 서버 : 192.168.10.131
   NFS 클라이언트 : 192.168.10.133

2. 서버와 클라이언트에 각각 아래와 같은 사용자와 그룹 생성한다.
 - 서버
group : nfstest(1400)
user : nfstest1, nfstest2
nfstest1 gid# : 1400, uid# : 1401
nfstest2 gid# : 1400, uid# : 1402

 - 클라이언트
group : nfstest(1400)
user : nfstest1, nfstest2
nfstest1 gid# : 1400, uid# : 1401
nfstest2 gid# : 1400, uid# : 1403

3. 파일 생성 및 테스트
TEST1 : /nfstest/a1 192.168.10.133(rw, no_root_squash)
TEST2 : /nfstest/a2 192.168.10.133(rw, all_squash)
TEST3 : /nfstest/a3 192.168.10.133(rw, no_all_squash)
TEST4 : /nfstest/a4 192.168.10.133(rw, all_squash,root_squash)
TEST5 : /nfstest/a5 192.168.10.133(rw, all_squash,no_root_squash)
TEST6 : /nfstest/a6 192.168.10.133(rw, no_all_squash,root_squash)
TEST7 : /nfstest/a7 192.168.10.133(rw, no_all_squash,no_root_squash)
TEST8 : /nfstest/a8 192.168.10.133(rw, anonuid=1401,anongid=1400)


1. /etc/exports 설정파일 수정 및 사용자 생성

1) 서버에서 /etc/exports 설정파일 수정 및 권한 부여

vi /etc/exports 환경설정파일에 디렉토리 권한 부여

/home/a1 192.168.10.133(rw,no_root_squash)
/home/a2 192.168.10.133(rw,all_squash)
/home/a3 192.168.10.133(rw,no_all_squash)
/home/a4 192.168.10.133(rw,all_squash,root_squash)
/home/a5 192.168.10.133(rw,all_squash,no_root_squash)
/home/a6 192.168.10.133(rw,no_all_squash,root_squash)
/home/a7 192.168.10.133(rw,no_all_squash,no_root_squash)
/home/a8 192.168.10.133(rw,anonuid=1401,anongid=1400)

 

2) 사용자 생성

서버에서 사용자 생성

 

클라이언트에서 사용자 생성

 

2. 서버, 클라이언트에 디렉토리 생성 및 마운트

1) 서버 디렉토리 생성

ls -al /home

 

서버에서 쓰기 권한을 주기 위해 모든 디렉토리 권한을  777로 변경한다.

 

2) 클라이언트 디렉토리 생성

ls -al /home

 

쓰기 권한을 주기 위해 모든 디렉토리 권한을  777로 변경

 

nfs.service 재시작

 

3) 마운트하기

df로 마운트 확인

 

3. 클라이언트 각 계정으로 파일 생성 후 서버에서 확인

1) 클라이언트 각 계정에서 파일 생성

root - /home/a*/root.txt
nfstest1 - /home/a*/test1.txt
nfstest2 - /home/a*/test2.txt

root

nfstest1

nfstest2

 

2) 서버 확인

TEST1 : /home/a1 192.168.10.133(rw, no_root_squash)

클라이언트의 root 서버의 root와 일치시켜 서버측에서 소유자가 root라 나온다.

일반 유저는 디폴트값 no_all_squash 이므로 서버 사용자와 클라이언트 사용자를 일치시킨다.

nfstest1의 uid는 서버와 클라이언트에 둘다 생성되어있는 1401 uid이므로 nfstest1으로 나오지만

클라이언트의 nfstest2의 uid는 1403으로 서버에 없는 uid이므로 숫자로 나오게 된다.


TEST2 : /home/a2 192.168.10.133(rw, all_squash)

all_squash는 모든 일반 유저인 nfstest1과 nfstest2 모두 nobody를 뜻하는 nfsnobody로 소유권이 변경되었다.

디폴트값 root_squash로 인해 클라이언트 root가 생성한 root.txt 또한 nobody로 매핑되었다.


TEST3 : /home/a3 192.168.10.133(rw, no_all_squash)

no_all_squash라 하여 서버와 클라이언트의 사용자를 일치시켜 nfstest1과 nfstest2(1403)가 나오게 되었다.

nfstest2는 uid/gid가 다르므로 클라이언트에서 생성한 소유권으로 나오게 된다.

디폴트값 root_squash로 인해 클라이언트 root가 생성한 root.txt 또한 nobody로 매핑되었다.


TEST4 : /home/a4 192.168.10.133(rw, all_squash,root_squash)

일반 유저를 all_squash로 하여 nfstest1과 nfstest2가 생성한 파일을 nobody로 매핑 시킨다.

디폴트값 root_squash로 인해 root 또한 nobody로 매핑 시킨다.


TEST5 : /home/a5 192.168.10.133(rw, all_squash,no_root_squash)

no_root_squash로 클라이언트의 root와 서버의 root를 일치시켜 소유권이 root로 나오게 된다.

하지만 root.txt 파일을 all_squash로 인해 모든 사용자가 nobody로 매핑된다.

root.txt , test1.txt , test2.txt 모두 nobody로 매핑된다.


TEST6 : /home/a6 192.168.10.133(rw, no_all_squash,root_squash)

no_all_squash라 하여 서버와 클라이언트의 사용자를 일치시켜 nfstest1과 nfstest2가 나온다.

nfstest2는 uid/gid가 다르므로 클라이언트에서 생성한 소유권으로 나오게 된다.

root_squash로 인해 클라이언트의 root를 nobody로 매핑한다.


TEST7 : /home/a7 192.168.10.133(rw, no_all_squash,no_root_squash)

 

no_all_squash라 하여 서버와 클라이언트의 사용자를 일치시켜 nfstest1과 nfstest2가 나오게 되었다.

nfstest2는 uid/gid가 다르므로 클라이언트에서 생성한 소유권으로 나오게 된다.

클라이언트의 root와 서버의 root를 일치시켜 소유권이 root로 나오게 된다.

 

TEST8 : /home/a8 192.168.10.133(rw, anonuid=1401,anongid=1400)

디폴트 값 no_all_squash를 통해 서버와 클라이언트의 사용자를 일치시켜 nfstest1과 nfstest2가 나오게 되었다.

nfstest2는 uid/gid가 다르므로 클라이언트에서 생성한 소유권으로 나오게 된다.

다른 디폴트 값 root_squash로 인해 클라이언트의 root를 nobody로 매핑해야 하지만

anonuid=1401, anongid=1400 은 서버 측과 클라이언트 측 모두 nfstest1의 uid와 gid가 동일한 것이므로

nobody가 아닌 nfstest1의 소유권으로 나오게 된다.

 

결과

  all_squash no_all_squash
root_squash root 포함 모든 사용자 nobody 매핑 root만 nobody 매핑
서버, 클라이언트 사용자 일치
no_root_squash root 포함 모든 사용자 nobody 매핑 root 와 사용자 모두 일치

 

+ Recent posts