0. samba 설치되어있는지 확인
$ sudo dpkg -l |grep samba
1. Samba 설치
$ sudo apt-get install samba smbfs
2.1. 시스템 사용자 등록(useradd) 및 패스워드 등록 (passwd)
※ samba 접속용 계정과 비밀번호 설정을 하기 전에 반드시 시스템 사용자를 등록 해줘야하는 절차를 거쳐야한다.
$ sudo useradd chpark
$ sudo passwd chpark
Changing password for user chpark
New UNIX password: 패스워드입력
Retype new UNIX password: 패스워드확인
passwd: all authentication tokens updated successfully.
2.1.1 계정관련 파일 확인
$ sudo cat /etc/passwd
2.1.2 계정관련 확인 (해당 id)
$ sudo id chpark
2.2. 공유할 디렉토리에 Samba 접속용 계정과 비밀번호 설정
$ sudo smbpasswd -a chpark
New SMB password: 패스워드입력
Retype new SMB password: 패스워드확인
==========================================================
※ /etc/samba/smb.conf 파일을 설정하기 전에 백업시켜놓자. (설정파일 매우 중요하므로)
# mkdir /chpark/data/bakup
# cp smb.conf /chpark/data/backup
# cd /chpark/data/backup
# mv smb.conf smb.conf.bak
==========================================================
3. 공유 폴더 생성 및 권한 설정
3.1 (공유할) 디렉터리 생성
$ sudo mkdir -p /srv/samba/share
3.2 디렉터리 권한 설정 (change owner)
$ sudo chown nobody:nogroup /srv/samba/share/
4. smb.conf 설정
$ sudo vi /etc/samba/smb.conf
#======================= Global Settings =======================
[global]
## Browsing/Identification ###
# Change this to the workgroup/NT-domain name your Samba server will part of
workgroup = WORKGROUP
# server string is the equivalent of the NT Description field
server string = %h server (Samba, Ubuntu)
# Windows Internet Name Serving Support Section:
# WINS Support - Tells the NMBD component of Samba to enable its WINS Server
# wins support = no
# WINS Server - Tells the NMBD components of Samba to be a WINS Client
# Note: Samba can be either a WINS Server, or a WINS Client, but NOT both
; wins server = w.x.y.z
; security = user
; encrypt passwords = yes
; smb passwd file = /usr/bin/smbpasswd
# This will prevent nmbd to search for NetBIOS names through DNS.
dns proxy = no
# This will allow access hosts for Using Samba Server
hosts allow = 192.168.71.
// 접근하는 호스트의 ip or 호스트의 네트워크대역
// 상황에 따라서 ~! 71번 네트워크 대역에 있는 호스트에 대하여 전부 허용
#======================= Share Definitions ======================
# Shared Friles scripting_02
[samba]
comment = Shared File Server for using Samba Server // Comment
path = /srv/samba/share // Samba로 공유할 디렉토리 경로 (절대경로)
guest ok = no // yes: 모두 접근 가능(samba 계정은 있어야 함)
create mask = 0777 // 새로운 파일이 생성되었을 때 가지게 될 파일 권한을 지정
directory mask = 0777 // 디렉터리의 권한을 지정
browseable = yes // 공유이름을 브라우저에 표시할 수 있게 하는 기능
; public = yes // guest ok와 같은 옵션으로 no로 설정하면
// 다른 사용자들은 이용할 수 없고 개인 사용자만 사용할 수 있게 된다
readonly = no // (= writable : yes)
host allow = 192.168.71. // 접속을 허용할 IP 네트워크대역
valid users = chpark // guest ok : no를 줄 경우 접근할 수 있는 사용자에 대하여 지정
// 그룹일경우 반드시 @(앳)을 꼭 붙여야한다.
※ valid users가 없고 guest ok = yes 혹은 public = yes 일 경우에
모든 samba 계정을 가지고 있는 사용자들이 접근 가능하다.
결론적으로 valid users가 key 가 되는 property이다.
5. smb.conf 설정 후 반드시 데몬을 재시작해야 설정파일이 반영된다.
$ sudo /etc/init.d/smbd restart
or
$ sudo /etc/init.d/smbd stop 후에 $ /etc/init.d/smbd start
■ 참고 :
https://help.ubuntu.com/lts/serverguide/samba-fileserver.html
■ 참고해볼만한 주소:
http://se.uzoogom.com/120
http://hamonikr.org/board_bFBk25/16679
http://mslee89.tistory.com/71
http://anti1346.egloos.com/v/4863483