2011. 8. 20. 06:51

 

NFS를 사용하여 원격 디렉토리 공유

 

설치 : sudo apt-get install nfs-kernel-server

 

▶ exportfs : 모든 공유서버에서 해당 디렉토리 보여줌.

$ sudo /usr/sbin/exportfs -v

/export/myshare

client.example.com(ro,wdelay,root_squash,no_subtree_check)

/mnt/public

<world>(rw,wdelay,root_squash,no_subtree_sheck)

☞ (ro) : 읽기만 가능, (rw) : 읽고/쓰기 마운트

☞ (wdelay) : 공유에 더 쓰기가 예상될 때 성능 향상을 지연

☞ (root_squash) : 클라이언트 root 유저로부터 요청은 익명 사용자 UID를 맵핑

☞ (no_subtree_check) : 파일시스템 퍼미션 체크가 덜 이루어진다.

 

▶ NFS 공유 디렉토리 추가/수정

$ sudo /etc/init.d/nfs-kernel-server reload

공유 디렉토리 익스포트 reload

$ sudo exportfs -r

공유 디렉토리 익스포트 reload

$ sudo exportfs -rv

exporting client.example.com:/export/myshare

exporting *:/mnt/public

익스포트 공유의 자세한 reload

 

▶ showmount : 공유 디렉토리 출력

/* 리눅스 서버 시스템에서, 로컬 시스템이 사용하는 공유 디렉토리 출력 */

$ sudo showmount -e

Export list for server.example.com

/export/myshare client.example.com

/mnt/public *

/* 리눅스 시스템 클라이언트에서, 선택한 컴퓨터가 사용하는 공유 디렉토리 출력*/

$ sudo showmount -e server.example.com

/export/myshare client.example.com

/mnt/public *

 

 

◎ NFS 공유 마운트

▶ mount 명령을 사용하여 NFS 공유 마운트

$ sudo mkdir /mnt/server-share

$ sudo mount server.example.com:/export/myshare /mnt/server-share

 

▶ mount 명령어에 NFS의 특별한 옵션 추가. (-o)

$ sudo mount -o rw,hard,intr server.example.com:/export/myshare /mnt/server-share

 

기본적으로, NFS 버전3 프로토콜은 공유를 연결하는데 사용.

NFS버전4를 사용하려면, 인터넷과 방화벽을 통해 작동하도록 설계.

커맨드라인에 있는 파일시스템 유형은 다음과 같은 프로토콜을 나타낸다.

$ sudo mount -t nfs4 server.example.com:/ /mnt/server-share

 

 

 

 

삼바를 사용하여 원격 디렉토리 공유

♧ 삼바는 윈도우 파일의 오픈소스 구현이고 서버 메시지 블록(SMB)으로 알려진 인쇄 공유 프로토콜 이고

지금 일반 인터넷 파일 시스템(CIFS)이라고 한다.

삼바를 사용하려면 samba, samba-doc 패키지 설치.

 

웹기반 관리 툴 : SWAT(swat 패키지 설치) 이 삼바에 포함.

SWAT 시작하는 방법에 대한 내용 : https://help.ubuntu.com/community/Swat

 

◎ 삼바 공유 보기와 액세스

▶ SMB 호스트 네트워크 스캔

$ findsmb

■■■■■■■■■■■*=DMB

■■■■■■■■■■■+=LMB

IP ADDR■■■NETBIOS NAME■■WORKGROUP/OS/VERSION

---------------------------------------------------------------------

192.168.1.1■■SERVER1■■■■+[MYWORKGROUP] [Unix] [Samba 3.0.25a-3.fc7]

 

▶ smbtree를 사용하여 네트워크 neighborhood(프린터 및 공유 디렉토리)의 텍스트 표현

$ smbtree

Password: ******

WORKGROUP

■■■\\THOMPSON

■■■■\\THOMPSON\

■■■■■\\THOMPSON\IPC$

 

▶ smbpasswd 명령을 사용하여 기존 리눅스 유저에 삼바 유저를 추가.

$ sudo smbpasswd -a devanix

New SMB password: ******

Retype new SMB password: ******

Added user devanix

☞ 암호를 요청하여 어떤 명령어를 수행하기 위한 삼바 패스워드 설정이 필요.

 

▶ 서버에서 익명 사용에게 서비스 목록을 제공.

$ smbclient -L WIN2003srv

password: ******

Anynymous login successful

Domain=[WIN2003] OS=[Windows Server 2003 3790 Service Pack 2] Server=[Windows…]

tree connect failed: NT_STATUS_LOGON_FAILURE

 

▶ 특정 유저를 smbclient로 출력

$ smbclient -L WIN2003srv -U administrator

Enter administrator's password:

Domain=[WIN2003] OS=[Windows Server 2003 3790 Service Pack 2] Server=[Windows…]

■■■Sharename■■Type■■Comment

■■■---------■■■----■■■-------

■■■print$■■■■Disk■■■프린터 드라이버

■■■C$■■■■■ Disk■■■ 기본 공유

■■■F$■■■■■ Disk ■■■기본 공유

■■■IPC$■■■■ IPC■■■■원격 IPC

 

▶ FTP 유형으로 삼바 공유에 연결

$ smbclient //192.168.1.1/myshare -U devanix

Password:

Domain=[WIN2003] OS=[Windows Server 2003 3790 Service Pack 2] Server=[Windows…]

smb: \>

 

대부분의 FTP 클라이언트에서 사용할 수 있는 명령어를 보려면 help 또는 ? 입력.

SMB 호스트에서 cd, ls, get, put, quit 같은 쉘 타입 명령어를 사용할 수 있다.

 

◎ 삼바 공유 마운트

▶ 로컬 혹은 원격 NFS 파일시스템에서 로컬 파일시스템으로 원격 삼바 공유를 마운트

$ sudo mount -t smbfs -o username=devanix,password=MySecret \

//192.168.1.1/myshare /mnt/mymount/

 

▶ smbstatus : 서버의 현재 연결과 잠금 파일을 볼 수 있다

$ sudo smbstatus

 

▶ nmblookup : 컴퓨터의 IP 어드레스를 결정

$ nmblookup thompson

querying Thompson on 192.168.1.255

192.168.1.1 server1<00>

 

▷ -U : 특정 서브넷에서 서버의 IP 어드레스를 발견

$ nmblookup -U 192.168.1.255 server1

querying server1 on 192.168.1.255

192.168.1.1 server1<00>

 

▶ 삼바 구성 파일(smb.conf) 체크

$ testparm

Load smb config files from /etc/samba/smb.conf

Processing section "[homes]"

☞ 삼바 공유를 사용할 수 없거나 삼바 서버 통신에 다른 어떤 문제가 있다면 삼바 구성을 테스트.

smb.conf 이외의 파일에 testparm을 사용 : $ testparm /etc/samba/test-smb.conf

 

 

 

 

SSHFS를 사용하여 원격 디렉토리 공유

SSH 프로토콜을 통해 또 다른 트릭으로 원격파일시스템을 마운트한다.

ssh 파일시스템(sshfs)을 사용하여 SSH 서버에서 유저 계정을 해당 로컬 리눅스 시스템에 액세스할 수 있는

디렉토리를 마운트할 수 있다. sshfs는 모든 데이터의 전송뿐만 아니라 마운트할 때 암호화를 제공.

 

sshfs의 또 다른 멋진 측면은 서버 측면에서 SSH 서비스를 실행하는 이외에 별다른 설정이 필요하지 않다.

 

▶ 원격 서버에서 로컬 디렉토리로 문서의 디렉토리를 마운트.

$ sudo apt-get install sshfs

sshfs 소프트웨어 설치

$ sudo mkdir /mnt/docs

마운트 지점 생성

$ sudo sshfs devanix@10.0.0.50:/var/docs /mnt/docs

원격 디렉토리 마운트

 

▶원격 디렉토리를 사용했을 때, fusermount 명령어로 언마운트.

$ sudo fusermount -u /var/docs

원격 디렉토리 언마운트

 

 

Posted by devanix