삼바는 윈도우에서 다른 윈도우 P.C.의 공유폴더를 이용하듯 리눅스의 폴더를 공유할 수 있도록 도와주는 서버입니다.

삼바 서버를 설명하면서

 이해를 돕기 위해 개발자 3명을 예를 들어 설명하도록 하겠습니다. 3명의 개발자 유저명은 jwjw, jwmx, other 이라고 하겠으며, 개발자는 모두 리눅스에 계정을 가지고 있습니다. jwjw와 jwmx는 삼바에 각자의 공유 폴더를 가지고 있고, 공유 폴더 하나는 jwjw와 jwmx만 사용하는 삼바 공유 폴더를 만들어 보겠습니다.

  즉, jwjw와 jwmx는 자기 홈 디렉토리의 public 폴더를 두어 각자의 공유 폴더를 사용하게 하며, /home/public 폴더를 생성하여, 이 폴더에는 jwjw와 jwmx 두 사람만 사용할 수 있도록 설정해 보겠습니다.  

삼바 서버에 사용자 등록

  공유 폴더라도 아무나 마구 들어 오면 안되겠습니다. 공유 폴더를 사용할 수 있는 사람들을 미리 등록해 놓고 그 사람들 마다 따로따로 사용할 수 있는 공유 폴더를 지정해 줍니다. xwindow에서 그래픽 설정화면을 이용하면 편할지 모르겠습니다만 저는 이와 같은 관리는 텍스트 모드에서 직접 명령을 입력하여 실행하는 것을 좋아합니다. 평소 자주 사용하는 것이 텔넷이라 직접 타이핑해서 명령을 수행하는 것이 직관적이고 처리가 빠르며 오히려 편리합니다.

  서버에 관련된 일이므로 root 로 로그인하겠습니다.

]$ su -                  -> root 계정으로 로그인 합니다. 또는 root 로 로그인 하십시오.

Password:             -> root 암호를 입력합니다.

]# smbpasswd -a jwjw       -> 삼바를 사용할 유저를 등록합니다.

리눅스 계정을 가지고 있다고 해서 삼바를 사용할 수 있는 권한까지 가지고 있다는 것은 아닙니다. 리눅스는 리눅스, 삼바는 삼바입니다. 삼바를 사용할 사용자를 등록합니다.

이때, 윈도우에서 사용하는 사용자 이름을 입력하시는 것이 편리합니다. 다른 이름으로 등록하셔도 됩니다만, 이렇게 다른 이름으로 등록하면 윈도우 탐색기에서 삼바의 공유 폴더를 연결할 때 마다 로그인을 해야합니다. 불편하죠.

예를 들어 jwjw는 윈도우에 jwjw 아이디로 암호는 1234라면 삼바에 유저 등록할 때, 윈도우와 같은 아이디와 암호로 등록합니다. 이렇게 등록하면 나중에 윈도우에서 탐색기로 자기에게 할당 받은 공유 폴더를 연결할 때, 바로 연결할 수 있어 편리합니다.

smbpasswd -a jwjw를 실행하면 아래와 같이 jwjw 삼바 계정의 암호를 입력 받습니다.
Password:       -> 역시 윈도우에 로그인할 때 사용하는 암호를 입력합니다.

윈도우에 암호를 설정하지 않았다면 그냥 엔터키를 눌러 빈 암호를 사용할 수 있습니다.

나머지 jwmx와 other도 삼바 유저에 등록합니다.

삼바 설정

  이제 각 유저에 따라 공유 폴더를 지정할 차례입니다. 물론 위도우에서 처럼 그래픽 설정 프로그램이 있지만 환경설정 파일을 이용하여 처리해 보겠습니다. 삼바 환경 설정 파일은 /etc/samba/smb.conf 입니다.

  아래의 내용을 참고하여 수정해 주시면 되며, 또는 내용을 그대로 복사하신 후 유저와 폴더명만 수정하여 사용하셔도 되겠습니다.

[global]
workgroup = workgroup                        # 윈도우 네트워크 환경의 작업 그룹 이름을 입력했습니다.
dos charset = CP949
unix charset = CP949
load printers = yes
printing = lpmg
server string = jwCentOS                     # 윈도우 탐색기에 출력할 컴퓨터 이름입니다.
printcap name = /etc/printcap
cups options = raw
log file = /var/log/samba/%m.log
max log size = 50
security = USER                                # 사용자 계정으로 설정합니다. 여기서 설명은 생략합니다.
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
dns proxy = no
idmap uid = 16777216-33554431
idmap gid = 16777216-33554431
template shell = /bin/false
password server = None
guest ok = no
winbind use default domain = no

[jwjw]                                    # jwjw 유저에 대한 삼바 공유 폴더 설정입니다.
comment = jwjw samba           # 탐색기에서 설명 컬럼에 출력할 내용입니다.
path = /home/jwjw/prjs           # jwjw 가 사용할 리눅스의 공유 폴더 경로입니다.
writeable = yes
public = no
create mask = 0644                 # 윈도우나 다른 시스템에서 파일을 생성했다면 기폰 파일 모드는 0644
directory mode = 0755            # 윈도우나 다른 시스템에서 디렉토리를 생성했다면 기폰 모드는 0755

[jwmx]                                   # jwmx 유저에 대한 삼바 공유 폴더 설정입니다.
comment = jwmx samba
path = /home/jwmx/public
writeable = yes
create mask = 0644
directory mode = 0755
public = no

[other]                                   # other 유저에 대한 삼바 공유 폴더 설정입니다.
comment = other samba
path = /home/other/public
writeable = yes
create mask = 0644
directory mode = 0755
public = no

[jwpublic]                             # jwjw와 jwmx 둘만 사용하는 공유 폴더 설정입니다.
comment = jwjw and jwmx
path = /home/public              # 공유폴더의 경로인데, 다른 사용자 폴더 안에 있는 경로를 사용하면 안됩니다.
writeable = yes
valid users = jwjw jwmx         # jwjw와 jwmx만 사용가능하도록 지정합니다.
create mask = 0644
directory mode = 0755
public = no

[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
printable = yes

삼바 서버 구동

  jwpublic 에 대한 폴더를 아직 만들지 않았지요. /home/public를 생성합니다. 사용자 두명이 자유롭게 사용할 수 있도록 디렉토리 모드를 777로 설정해 줍니다.

]# mkdir /home/public

]# chmod 777 /home/public

  이제 필요한 폴더까지 만들었으므로 삼바 서버를 구동하겠습니다. 삼바 서버의 실행 파일은 /etc/init.d 에 smb입니다.

]# /etc/init.d/smb start

또는 이미 구동 중이라면

]# /etc/init.d/smb restart              
    -> 이런것 저런것 신경 쓰고 싶지 않다면 restart를 사용하십시오.

윈도우 탐색기에서

  이렇게 삼바 환경을 설정하고 서버를 구동 시키고 탐새기에서 네트워크를 검색해 보면, 아래와 같이 삼바 서버의 공유 폴더가 검색이되고 유저 마다 자기에게 할당된 공유 폴더를 이용할 수 있습니다.

  jwjw 는 삼바의 jwjw와 jwpublic를 jwmx는 삼바의 jwmx 와 jwpublic를 사용할 수 있지만 other은 삼바의 other 공유 폴더만 사용할 수 있습니다.

  이제 jwjw, jwmx, other은 윈도우 PC에서도 삼바의 공유 폴더를 이용하여 프로그램 소스 코드를 작성할 수 있습니다.

태그: *삼바 *samba *리눅스 *설치 * 설정  *초보 *개발환경구축