학습자료(~2017)/리눅스

[LINUX] samba 삼바 설정 및 해결

단세포소년 2013. 1. 24. 15:20
반응형





 Samba(삼바)란?
 리눅스에서 윈도우 시스템에게 파일시스템을 공유하기 위한 프로그램이다.
SMB/CIFS 네트워크 프로토콜을 재구현한 프로그램이다.
즉 리눅스의 파일시스템이나 프린트를 윈도우에게 공유할 수 있게 해준다.


 설치(centos 기준)
 $ yum install samba


 실행 및 중지
 $ service smb start

 $ service smb stop


 설정
 /etc/samba/smb.conf 변경

아래의 설정 설명은 http://blog.nextcube.pe.kr/126 에서 가지고 왔다.

자동 홈디렉토리
리눅스 계정 사용자들이 홈디렉토리를 로그인홈으로 사용하기 위한 설정
[home]으로 선언된 부분에 정의

프린터 설정
네트워크 공유프린터에 대한 설정
[printers]으로 선언된 부분에 정의

주석처리 # , ;
# 이나 ; 으로 시작되는 구문은 주석처리

[] 행
섹션을 정의
하나의 섹션이 정의된 후 그 다음 섹션이 정의될때까지의 행들이 해당 섹션에 속함

name=value 행
사용하는 옵션과 해당값을 설정

  - 글로벌설정
     삼바서버가 공유하는 자원들에게 공통적으로 적용할 기본값 설정
     [global] 이라고 선언된 부분에 정의
[값]
[]사이에 값으로 섹션 정의

Workgroup = workgroup
워크그룹 설정

Server string = samba
삼바서버의 이름 설정

Hosts allow = 192.128.0.1
삼바서버로의 접근을 허용하기 위한 IP 설정

Load printers = yes
자동프린터 목록을 사용하기 위한 값 설정
네트워크 프린터를 삼바서버에서 관리하도록 하려면 yes 로 설정

Printcap name = /etc/printcap
printcap 파일의 위치 설정
※printcap
/etc/printcap 위치에 있으며, 리눅스의 프린터 설정 파일


Printing = bsd
프린터 시스템 설정
bsd, sysv, plp, lprng, aix, hpux, qnx 등이 있음

Guest account = pcguest
삼바서버에 손님권한으로 접근하였을때의 권한설정

Log file = /var/log/samba/log.%m
삼바서버로 접속하는 개별 사용자들의 호스트정보를 %m 으로 받아서 개별 로그파일을 생성

max log size = 50
로그파일의 최대 용량제한 (kb), 0이면 제한 없음

Security = share
보안모드 설정
  user : 삼바서버에 접속하는 사용자는 윈도우에 사용하는 로그인 ID와 동일해야함
  share : 공유디렉토리와 같은 인증없이 접근가능함
  server : 별도의 인증서버에서 인증

Password server = <NT-Server_Name>
Securiy 옵션이 server로 설정되었을 시에 인증서버로 사용한 서버를 지정

Password level = 8
패스워드 문자로 대소문자를 조합하여 사용할 문자개수 지정

Username = 8
유저명 문자로 대소문자를 조합하여 사용할 문자개수 지정

Encrypt passwords = yes
패스워드 암호화

Smb passwd file = /etc/samba/smbpasswd
삼바서버 유저들의 패스워드파일 위치 지정

Unix password sync = yes
Passwd program = /usr/bin/passwd %u
Passwd chat = *New*UNIX*password* %nn *ReType*new*UNIX*password* %nn
*passwd:*all*authentication*tokens*updated*successfully*

원격지에서 삼바패스워드를 변경할수 있도록 하기위한 설정

Username map = /etc/samba/smbusers
삼바서버 유저명과 리눅스 계정명을 다르게 사용할경우 매칭 테이블 파일을 지정

Include = /etc/samba/smb.conf.%m
삼바서버 접속자의 플랫폼에 따라서 각기 다른 설정 파일을 적용
%m은 접속자 시스템의 NetBIOS 이름

Interfaces = 192.168.12.2/24 192.168.13.2/24
삼바서버의 두개이상의 네트워크 인터페이스를 사용하기 위한 옵션

Logon script = %m.bat
각 플레폼별 또는 각 사용자별로 로그온 스크립트(login script)를 구분하여 사용

Wins support = yes
윈도우 인터넷 네임서비스인 WINS를 지원

Wins server = w.x.y.z
Wins서버를 지정

Dns proxy = no
Dns의 nslookup을 사용하여 netbios이름을 찾을 것인가 아닌가를 지정하는 옵션

Preserve case = no
Short preserve case = no
대소문자를 유지 보존할 것인가를 지정하는 옵션. 
시스템의 기본값은 no 입니다. 이 설정은 각각의 공유마다 별도로 설정 가능

Default case = lower
Dos파일들의 기본 문자는 대문자로 인식
만약 lower로 설정한다면 소문자로 인식

Case sensitive = no
대소문자의 구분을 할것인가 말것인가를 지정하는 옵션.

valid users = "사용자"
특정 사용자만 공유 폴더에 접근할 수 있도록 허용하는 명령
설정하지 않으면 어떠한 사용자라도 접근
콤마(,) 로 구분

create mask, create mode
파일을 생성할 때의 모드를 umask 결정

write list
쓰기가 가능한 특정 사용자를 지정

writable = yers
읽고 쓰기 가능

comment = com
섹션의 코멘트 설정

path = /home/nextcube
기본 홈디렉토리 설정




 설정 예)
 # near line 58: add
unix charset = UTF-8
dos charset = CP932

# line 75: change (Windows' default)
workgroup = WORKGROUP

# line 81: uncomment and change IP address you allow
hosts allow = 127. 10.0.0.

# line 102: change (no auth)
security = share

# add at the bottom

[Share]# any name you like
   path = /home/share# shared directory
   writable = yes# writable
   guest ok = yes# guest OK
   guest only = yes# guest only
   create mode = 0777# fully accessed
   directory mode = 0777# fully accessed
   share modes = yes# warn if some people access to a file




기타 사항 (해결법)

 net 명령어로 samba 서버에 연결된 윈도우에서 세션 끊기
 1. 윈도우 콘솔창을 연다.

2. net use 명령으로 세션을 확인한다.

3. net use \\ip\path /delete 로 세션을 종료한다.

예) 

> net use

상태        로컬           원격                            네트워크
---------------------------------------------------------------------
OK                          \\192.168.0.1\test      Microsoft Windows Network

> net use \\192.168.0.1\test /delete

주의 네트워크 드라이브로 연결되어 있는 세션은 먼저 네트워크 드라이브 연결을 해제해야한다.

 방화벽 끄기

 방법1. system-config-firewall

 방법2. service iptables stop ; service ip6tables stop

 selinux 끄기

 임시방법 : setenforce 0

 지속방법 : vi /etc/selinux/config 후 SELINUX=enforcing 부분을 SELINUX=disabled 로 바꾼다.

 사용자 추가하기 (id 만들기)

 사용자 추가하기 : smbpasswd -a username 

삼바의 경우 사용자를 자체관리하지만 linux 기본 사용자를 기반으로 사용자를 만들수 있다.

다시 말해 linux 에 등록된 사용자만이 삼바 사용자로 추가될 수 있다. 

만약 linux 사용자에 없는 사용자를 삼바에 추가하려 한다면 아래의 오류가 출력된다.

[root@/ ]# smbpasswd -a test
New SMB password:
Retype new SMB password:
Failed to add entry for user test.




반응형