linux class(new) 1 페이지

본문 바로가기
사이트 내 전체검색


회원로그인

linux class(new)

samba 서비스

페이지 정보

작성자 admin 작성일16-07-06 17:21 조회980회 댓글0건

본문

마이크로소프트와 인텔은 윈도우시스템이 다른 시스템의 디스크나 프린터 자원을 공유할 수 있도록
SMB(Server Message Block) 프로토콜을 개발하였는데 삼바란 이 SMB 를 이용하여 윈도우와
다른 시스템간의 프린터및 자료를 공유할 수 있도록 해주는 서비스

현재 마이크로소프트에서는 SMB 라는 이름대신 좀 더 범위가 큰 CIFS(Common Internet Filesystem)
이라는 프로토콜로 부른다. 이프로토콜은 SMB 프로토콜에 LanManager 와 NetBios 프로토콜까지
포함한다.

삼바패키지 설치 여부 확인

svr1[~]# rpm -qa | grep -w samba
samba-common-3.6.23-20.el6.x86_64
samba-winbind-clients-3.6.23-20.el6.x86_64
samba-3.6.23-20.el6.x86_64
samba-winbind-3.6.23-20.el6.x86_64
samba-client-3.6.23-20.el6.x86_64
svr1[~]#


*. 삼바 주요 설정 옵션
[global]
workgroup = MYGROUP
server string = Samba Server Version %v
netbios name = MYSERVER
interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
hosts allow = 127. 192.168.12. 192.168.13.

# --------------------------- Logging Options -----------------------------
# logs split per machine
log file = /var/log/samba/log.%m
# max 50KB per log file, then rotate
max log size = 50

# ----------------------- Standalone Server Options ------------------------
security = user
passdb backend = tdbsam

#============================ Share Definitions ==============================
[homes]
comment = Home Directories
browseable = no
writable = yes
; valid users = %S
; valid users = MYDOMAIN\%S

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

; [public]
; comment = Public Stuff
; path = /home/samba
; public = yes
; writable = yes
; printable = no
; write list = +staff

ex) /var/test 디렉토리를 공유하기 위한 삼바 설정
smb.conf 파일 맨 아래에 다음 부분 추가
 

svr1[/etc/samba]# mkdir /var/test


[public]
comment = samba share test
path = /var/test
public = yes
writable = yes

그리고 global 섹션 안에 있는 설정 옵션
WORKGROUP 이름과 netbios name 에 이름을 정해서 설정
ex)
workgroup = WORKGROUP
server string = Samba Server Version %v
netbios name = smb_svr1
설정 완료 후 저장하고 나서 아래처럼 데몬을 실행한다.

svr1[/etc/samba]# service smb start ; service nmb start
SMB서비스를 시작하고 있습니다: [ OK ]
NMB서비스를 시작하고 있습니다: [ OK ]
svr1[/etc/samba]#



svr1[/etc/samba]# pgrep -fl smbd ; pgrep -fl nmbd
3143 smbd -D
3148 smbd -D
3163 nmbd -D
svr1[/etc/samba]#

- 서비스 정상 실행됨.
* 그런다음 mswindows 에서는 네트워크 목록에서 삼바서버를 찾아서 로그인하거나
또는 탐색창에서 \\삼바서버주소 를 입력하면 된다.
그러면 아래처럼 삼바서비스 인증창이 뜨게 된다.

samba1.jpg
- 여기서 로그인할 수 있는 계정은 삼바계정이며 일반 리눅스 계정으로 로그인 할수는 없다.

삼바계정 생성

svr1[/etc/samba]# smbpasswd -a smbuser1
New SMB password:
Retype new SMB password:
Failed to add entry for user smbuser1. <== 삼바계정 생성 실패
svr1[/etc/samba]# smbpasswd -a user1
New SMB password:
Retype new SMB password:
Added user user1. <== 삼바계정 생성 성공
svr1[/etc/samba]#

* 삼바계정은 /etc/passwd 파일에 등록된 계정이름이어야 한다.

svr1[/etc/samba]# useradd smbuser1
svr1[/etc/samba]# smbpasswd -a smbuser1
New SMB password:
Retype new SMB password:
Added user smbuser1.
svr1[/etc/samba]#

- smbuser1 을 삼바계정으로 생성하기 위해서는 smbuser1 을 리눅스 계정으로 먼저
생성한다음에 삼바계정을 생성해야 한다.

* 삼바를 실습할 계정을 몇개 생성한다.
삼바권한 설정을 쉽게 하려면 모든 삼바 계정을 같은 그룹에 속하도록 하면 된다.
아래처럼 삼바를 실습할 계정을 만든다.

svr1[/etc/samba]# groupadd smb
svr1[/etc/samba]# useradd -g smb smbuser1
svr1[/etc/samba]# useradd -g smb smbuser2
svr1[/etc/samba]# useradd -g smb smbuser3
svr1[/etc/samba]# useradd -g smb smbuser4
svr1[/etc/samba]# useradd -g smb smbuser5
svr1[/etc/samba]# groupadd group1
svr1[/etc/samba]# useradd -g smb -G group1 smbuser10
svr1[/etc/samba]# useradd -g smb -G group1 smbuser20

그런다음 smbpasswd 명령어로 위에 만든 리눅스 계정을 전부
삼바 계정이 되게 설정한다.(smbpasswd -a 계정)
삼바 계정 확인은 pdbedit 로.

svr1[/etc/samba]# pdbedit -L
user1:500:
smbuser2:507:
smbuser4:509:
smbuser1:506:
smbuser3:508:
smbuser5:510:
smbuser10:511:
smbuser20:512:
svr1[/etc/samba]#


* 특정 디렉토리에 대한 삼바 권한 설정
/var/test2 디렉토리 공유권한 설정
smbuser1,smbuser2 긔록 group1 에 속해있는 모든 사용자한테
읽고쓰기 권한, 그리고 smubser3 은 access 금지,
나머지 모든 삼바계정은 읽기전용으로 access
--> 아래 내용을 smb.conf 파일 맨 아래에 추가하면 된다.

[public2]
comment = samba share test2
path = /var/test2
public = yes
invalid users = smbuser3
write list = smbuser1,smubser2,+group1


svr1[/etc/samba]# ls -ld /var/test2
drwxrwxr-x. 2 root smb 4096 2016-07-06 16:31 /var/test2
svr1[/etc/samba]#

- 디렉토리 퍼미션 설정은 출력결과처럼 하면 된다.

mswindows 공유폴더에 access
- 공유자원출력

svr1[/etc/samba]# smbclient -L \\192.168.10.1 -U lee
Enter lee's password:
Domain=[MYSTAR] OS=[Windows 8.1 9600] Server=[Windows 8.1 6.3]

Sharename Type Comment
--------- ---- -------
ADMIN$ Disk 원격 관리
C$ Disk 기본 공유
D$ Disk 기본 공유
IPC$ IPC 원격 IPC
mstest Disk
Users Disk
session request to 192.168.10.1 failed (Called name not present)
session request to 192 failed (Called name not present)
session request to *SMBSERVER failed (Called name not present)
NetBIOS over TCP disabled -- no workgroup available
svr1[/etc/samba]#



svr1[/etc/samba]# smbclient //192.168.10.1/mstest -U lee
Enter lee's password:
Domain=[MYSTAR] OS=[Windows 8.1 9600] Server=[Windows 8.1 6.3]
smb: \> pwd
Current directory is \\192.168.10.1\mstest\
smb: \> dir
. D 0 Wed Jul 6 16:46:02 2016
.. D 0 Wed Jul 6 16:46:02 2016

55187 blocks of size 4194304. 3237 blocks available
smb: \>

파일 업로드
명령을 모르면 help 로 확인할 수 있다.(파일전송은 ftp 명령어와 비슷함)

smb: \> help
? allinfo altname archive blocksize
cancel case_sensitive cd chmod chown
close del dir du echo
exit get getfacl geteas hardlink
help history iosize lcd link
lock lowercase ls l mask
md mget mkdir more mput
newer open posix posix_encrypt posix_open
posix_mkdir posix_rmdir posix_unlink print prompt
put pwd q queue quit
readlink rd recurse reget rename
reput rm rmdir showacls setea
setmode stat symlink tar tarmode
timeout translate unlock volume vuid
wdel logon listconnect showconnect ..
!
smb: \>
smb: \> lcd /etc
smb: \> ! pwd
/etc
smb: \> prompt
smb: \> mput issue*
putting file issue.net as \issue.net (0.5 kb/s) (average 0.5 kb/s)
putting file issue as \issue (45.9 kb/s) (average 1.0 kb/s)
smb: \>
smb: \> dir
. D 0 Wed Jul 6 17:00:15 2016
.. D 0 Wed Jul 6 17:00:15 2016
issue A 47 Wed Jul 6 17:00:15 2016
issue.net A 46 Wed Jul 6 17:00:15 2016

55187 blocks of size 4194304. 3237 blocks available
smb: \>


파일 다운로드 - windows 공유폴더의 issue 를 리눅스의 /tmp 에 다운로드

smb: \> lcd /tmp
smb: \> ! pwd
/tmp
smb: \> get issue
getting file \issue of size 47 as issue (6.6 KiloBytes/sec) (average 6.6 KiloBytes/sec)
smb: \> ! ls issue
issue
smb: \>

- smbclient 를 사용하지 않고 마운트 해서 파일 전송을 할 수도 있다.
늘 사용하는 경우라면 마운트해서 사용하는것이 편리하다.


svr1[/etc/samba]# mkdir /mnt/mswin
svr1[/etc/samba]# mount -t cifs //192.168.10.1/mstest /mnt/mswin -o user=lee
Password:
svr1[/etc/samba]# df -h -t cifs
Filesystem Size Used Avail Use% Mounted on
//192.168.10.1/mstest
216G 203G 13G 95% /mnt/mswin
svr1[/etc/samba]#

- 마운트가 되었으므로 파일 업로드 및 다운로드는 cp 명령어로 복사를 하면 된다.

svr1[/etc/samba]# ls -l /mnt/mswin
합계 1
-rwxr-xr-x. 0 root root 47 2016-07-06 17:00 issue
-rwxr-xr-x. 0 root root 46 2016-07-06 17:00 issue.net

디폴트 파일 퍼미션을 바꾸고 싶으면 마운트 할때 퍼미션 옵션을 줘야 한다.
테스트 하려면 먼저 마운트 끊고 나서

svr1[/etc/samba]# mount -t cifs //192.168.10.1/mstest /mnt/mswin -o user=lee,dir_mode=0755,file_mode=0644
Password:
svr1[/etc/samba]# ls -l /mnt/mswin
합계 1
-rw-r--r--. 0 root root 47 2016-07-06 17:00 issue
-rw-r--r--. 0 root root 46 2016-07-06 17:00 issue.net
svr1[/etc/samba]#


- 부팅할때 자동으로 윈도우 공유폴더를 마운트 하려면 /etc/fstab 파일에 등록하면 된다.
(아래처럼 한줄을 추가하면 부팅할때 자동으로 마운트 된다)
//192.168.10.1/mstest /mnt/mswin cifs user=lee,dir_mode=0755,file_mode=0644 0 0

- samba-swat 를 사용하면 좀 더 쉽고 편리하게 삼바설정과 삼바 서비스를 관리할 수 있다.
- 설치 안되어있으면 samba swat 를 설치하고 서비스가 시작될수 있도록
/etc/xinetd.d/swat 파일 설정을 수정.

svr1[/etc/xinetd.d]# cat swat
# default: off
# description: SWAT is the Samba Web Admin Tool. Use swat \
# to configure your Samba server. To use SWAT, \
# connect to port 901 with your favorite web browser.
service swat
{
port = 901
socket_type = stream
wait = no
only_from = 127.0.0.1 <=== 이 부분 주석 처리
user = root
server = /usr/sbin/swat
log_on_failure += USERID
disable = yes <== 이부분은 no
}
svr1[/etc/xinetd.d]#

- 수정후 바로 적용하려면 service xinetd restart.

*. 삼바서비스를 위한 방화벽 설정은 아래처럼 하면 된다.
/etc/sysconfig/iptables 에 아래 내용 추가
-A INPUT -p tcp --dport 137:139 -j ACCEPT
-A INPUT -p udp --dport 137:139 -j ACCEPT
-A INPUT -p tcp --dport 445 -j ACCEPT
-A INPUT -p tcp --dport 901 -j ACCEPT

댓글목록

등록된 댓글이 없습니다.


접속자집계

오늘
70
어제
34
최대
611
전체
448,045
개인정보취급방침 서비스이용약관 twoseven.kr All rights reserved.
상단으로