실습 내용
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 와 사용자 모두 일치 |
'리눅스 공부 기록' 카테고리의 다른 글
samba 실습 2 - webmaster samba 실습 (1) | 2021.11.24 |
---|---|
리눅스 19 - samba + 실습 (0) | 2021.11.23 |
NFS 실습 1 - NFS 서비스 구성 (0) | 2021.11.22 |
리눅스 18 - NFS (0) | 2021.11.22 |
리눅스 Apache 실습 3 - 도메인 기반 httpd.conf(가상 호스트) 설정 (0) | 2021.11.18 |