samba를 이용한 우분투간 파일 공유

2019. 8. 22. 19:32임베디드/ubuntu

기존의 cli 환경에서의 sftp를 사용했는데, 좀 더 효율적으로 사용하기 위해서 samba를 이용한 gui로 파일 공유가 실시간으로 이뤄지는 것을 확인할 것이다. 서버, 클라이언트를 나누어서 설명할 것이다

 

서버, 클라이언트 모두 기본적으로 삼바 패키지를 설치해야 한다

 

 $ sudo apt-get update 
 $ sudo apt-get install samba samba-common-bin 

 

설치가 정상적으로 되었는지 확인한다

 

 $ ps -ef | grep smbd 

 

 

다음으로 네트워크 연결 상태를 확인한다. 참고로 445 포트는 삼바 서버가 사용하는 소켓서버다

 

 

1. 서버

 $ sudo vim /etc/samba/smb.conf 

 

위와 같이 conf 파일을 열고, shift + G를 눌러 맨 아래로 이동해 다음과 같이 작성한다

 

[noel] // whoami 명령으로 나오는 사용자 계정
comment = file share using samba // 설명
path = /home/noel/cpp_src // 공유할 폴더 절대경로
valid user = noel // whoami 명령으로 나오는 사용자 계정
writeable = yes
read only = no
browseable = yes

 

그리고 아래 명령어를 통해 암호 설정을 한다

 

 $ sudo smbpasswd -a [삼바 사용자계정] 

 

그리고 삼바 서버 재실행을 통해 활성화시킨다

 

 $ sudo /etc/init.d/smbd restart 

 

2. 클라이언트

 

클라이언트 접속은 다양한 환경에서 접속할 수 있는데, 지금은 같은 로컬 네트워크를 기준으로 설명한다. 외부에서 삼바 서버를 접속하려면 포트포워딩을 살펴봐야 한다

 

실행되는 삼바 서버를 확인하기 위해 삼바 유틸리티를 설치한다

 

 $ sudo apt-get install smbclient cifs-utils 

 

우분투 서버 ip를 조회해서 삼바 서버를 조회할 수 있다. 조회가 된다면 다음과 같이 위 서버에서 만든 것처럼 생성될 것이다

 

 $ smbclient -L [삼바 서버 ip] -U% 

 

 

다음은 마운트 할 폴더를 만들고, 삼바 서버가 공유하는 폴더를 마운트할 것이다. 첫 인자는 서버의 ip와 사용자 계정, 다음은 마운트 할 폴더의 절대경로다

 

 $ sudo mount -t cifs //192.168.0.85/ros /mnt/share 

 

해당 명령이 정상적으로 실행된다면 비밀번호를 입력하는 문구가 나올 것인데, 이또한 정상적으로 입력이 된다면 마운트 폴더에 내용들이 공유될 것이다. 좀 더 효과적으로 바탕화면에서 보기 위해 소프트링크를 통해서 바로가기를 만들 수 있다

 

 $ ln -s [마운트 폴더의 절대경로] ~/바탕화면 

 

 

클라이언트에서 마지막으로 해야할 일은 부팅마다 삼바 서버를 마운트하는 일이다. 운영체제가 꺼지는 순간 매번 삼바 서버와의 마운트는 끊어진다. 따라서 fstab 파일을 수정해 자동으로 마운트할 것이다

 

 $ sudo vim /etc/fstab 

 

맨 마지막에 다음 내용을 추가해준다

 

 //[서버ip]/[삼바계정] [마운트폴더] cifs defaults,username='[삼바계정]',password='[비밀번호]',iocharset=utf8 0 0

 

[출처] https://www.wsgvet.com/bbs/board.php?bo_table=web&wr_id=26