NFS
- Network File System
- 네트워크를 통해 다른 시스템의 디스크를 연결하여 사용하는 것
- 설치 확인: sudo apt-get intall nfs-common nfs-kernel-server rpcbind
- NFS 서버 설정: /etc/exports
NFS 옵션
- rw: NFS 서버 디렉터리에 읽기, 쓰기를 모두 허용
- ro: NFS 서버 디렉터리에 읽기만 허용(기본값)
- sync: 클라이언트가 NFS 서버에 쓰기 작업을 하면 바로 반영(기본값)
- async: 클라이언트가 NFS 서버에 쓰기 작업을 하면 바로 반영하지 않음
- 서버에 문제가 발생했을 때 데이터 불일치가 발생할 수 있음
- root_squash: 클라이언트가 uid/gid 0(root)으로 접속해도 서버에서는 이를 anonymous uid/gid로 취급
- no_root_squash: root_squash를 정지, 서버에서도 root 권한 사용 가능
- anonuid & anongid: anonymous 계정의 uid와 gid를 명시적으로 실행
NFS 서버
- /home 디렉터리에 share 디렉터리 생성
- sudo mkdir /home/share
- sudo chmod 707 /home/share
- /home/share 디렉터리 공유 설정
- sudo vi /etc/exports
~ - /home/share 192.168.1.3(rw)
- ~
:wq
- sudo vi /etc/exports
- NFS 서버 시작
- sudo systemctl restart nfs-kernel-server
- sudo systemctl restart rpcbind
- systemctl status nfs-kernel-server
NFS 관련 주요 데몬
- rpc.mountd: NFS 마운트 데몬으로 /etc/exports의 설정에 따라 클라이언트의 마운트 요청 처리
- rpc.nfsd: rpc.mountd 데몬과 클라이언트가 접속되면 rpc.nfsd 데몬이 클라이언트의 요청에 따라 처리
- rpc.lockd: 파일 잠금 관련 데몬
- rpc.startd: 파일 잠금과 해제의 역할 담담
exportfs
- exportfs [옵션]: NFS 서버에서 익스포팅(공유)한 내용을 관리
- -a: 설정 파일에 지정한 모든 디렉터리를 익스포팅/언익스포팅
- -v: 상세 동작 내용 출력
- -u IP주소:경로: 경로로 지정한 디렉터리의 익스포팅 해제
- -o NFS옵션 IP주소:경로: 경로로 지정한 디렉터리를 익스포팅하고 IP주소로 지정한 클라이언트의 접속 허용
NFS 클라이언트
- 설치: sudo apt install nfs-common
- mount 명령으로 공유 디렉터리 연결: sudo mount -t nfs 192.168.0.184:/home/share /mnt
- df 명령으로 NFS 마운트 확인 가능
- 리눅스 부팅 시 계속 마운트 하려면 /etc/fstab 파일에 설정
- NFS서버주소: 익스포팅한디렉터리 클라이언트마운트포인트 NFS옵션
- (옵션) fg: 첫 번째 NFS 마운트 시도에서 타임아웃 발생 시 마운트 시도 즉시 중단(기본값)
- (옵션) hard: 타임아웃 발생 시 'Server not responding'이라는 메시지를 출력하고 무한정 재시도, 시스템이 부팅하지 못할 수도 있음
- (옵션) soft: 타임아웃 발생 시 프로그램에 오류를 보고하고 부팅 진행
showmount
- showmount [옵션]: NFS 서버의 공유 내용 출력
- -e 서버주소: 서버의 공유 내용 출력
삼바
- 리눅스와 윈도우의 디렉터리나 프린터 등을 공유
리눅스에서 윈도우 폴더 공유
- 리눅스가 삼바 클라이언트
- 윈도우가 삼바 서버 역할
리눅스 설정
- smbclient 설치: sudo apt install smbclient
- 서버의 SMB/CIFS 자원에 접근하기 위해 사용하는 클라이언트
- (옵션) -L 서버주소: 서버에서 이용할 수 있는 서비스 목록 출력
- (옵션) -U 사용자계정: 삼바 서버에 접속할 사용자 지정
- smbclient -L 10.10.10.1
- smbclient //서버주소/디렉터리 -U 사용자계정%암호
윈도우의 공유 폴더 마운트
- 마운트 할 때 디스크의 종류를 cifs로 지정
- mount -t cifs //윈도우IP주소/공유폴더명 마운트포인트
- 우분투가 cifs를 인식하게 하려면 cifs-utils 패키지를 먼저 설치
- sudo apt install cifs-utils
- /sambawin을 만들고 윈도우 폴더를 마운트
- sudo mount -t cifs -o vers=1.0 //192.168.1.90/Samba-win /sambawin
- 윈도우의 폴더를 사용할 사용자를 추가하고 폴더를 공유하기만 하면 됨
- 윈도우에서 폴더 생성 후 폴더 속성 창 열기
- 속성 창에서 공유 클릭 후 Everyone에게 읽기/쓰기 권한 추가 후 공유 클릭
- 네트워크 선택에서 개인 네트워크 선택
윈도우에서 리눅스 디렉터리 공유
- 윈도우가 삼바 클라이언트
- 리눅스가 삼바 서버 역할
리눅스 삼바 설정
- sudo apt install samba
- 설정 파일: /etc/samba/smb.conf
항목 | 설명 | 설정 값 |
workgroup | 리눅스와 윈도우에 적용할 작업 그룹 이름, 이미 윈도우에 설정되어 있는 작업 그룹(컴퓨터 → 속성) 이름으로 설정 | WORKGROUP |
로그인 디렉터리 지정 | 클라이언트에서 접속할 디렉터리의 경로와 접근 권한 지정 | [user1] path= /home/user1 read only = no |
- 설정 파일 수정 후 삼바 서버 재시작
- sudo systemctl restart smbd
- sudo systemctl restart nmbd
- smbpasswd [옵션]: 접속을 허용할 사용자 계정의 삼바 접속 암호 설정
- -a 계정: 지정한 계정의 암호를 설정
- -x 계정: 지정한 계정의 암호를 삭제
- -d 계정: 지정한 계정을 사용 불가로 표시
- -e 계정: 지정한 계정을 사용할 수 있도록 함
윈도우 설정
- 탐색기 - 네트워크 항목 - 네트워크 드라이브 연결
- 연결 창에서 폴더에 '\\리눅스서버IP주소\사용자계정'을 입력 후 마침 클릭
- 암호 입력 창에서 smbpasswd로 설정한 계정과 암호 입력