[삼바]
SMB(Server Message Block) 프로토콜을 이용해 다른 OS간에 파일이나 프린터의 공유를 가능하게 해주는 패키지이다.
즉, 리눅스의 자원을 윈도우에서 사용할 수 있고, 반대로 윈도우의 자원을 리눅스에서 사용할 수 있도록 해준다.
[01] 삼바 yum으로 설치
# yum install samba* --skip-broken
[주의] 위에 samba를 yum으로 설치할때 " * "(아스타리크) 기호를 넣어준다!
Dependencies Resolved
=======================================================
Package Arch Version Repository Size
=======================================================
Installing:
samba i386 3.0.33-3.7.el5_3.1 updates 16 M
samba-swat i386 3.0.33-3.7.el5_3.1 updates 8.2 M
Updating:
samba-client i386 3.0.33-3.7.el5_3.1 updates 5.7 M
samba-common i386 3.0.33-3.7.el5_3.1 updates 8.7 M
Installing for dependencies:
perl-Convert-ASN1 noarch 0.20-1.1 base 42 k
Transaction Summary
=======================================================
Install 3 Package(s)
Update 2 Package(s)
Remove 0 Package(s)
Total download size: 39 M
Is this ok [y/N]: y
Downloading Packages:
(1/5): perl-Convert-ASN1-0.20-1.1.noarch.rpm | 42 kB 00:00
(2/5): samba-client-3.0.33-3.7.el5_3.1.i386.rpm | 5.7 MB 00:00
(3/5): samba-swat-3.0.33-3.7.el5_3.1.i386.rpm | 8.2 MB 00:00
(4/5): samba-common-3.0.33-3.7.el5_3.1.i386.rpm | 8.7 MB 00:00
(5/5): samba-3.0.33-3.7.el5_3.1.i386.rpm | 16 MB 00:01
-------------------------------------------------------
[02] 설치된 패키지 확인
# rpm -qa | grep samba
samba-common-3.0.33-3.7.el5_3.1
samba-client-3.0.33-3.7.el5_3.1
samba-3.0.33-3.7.el5_3.1
samba-swat-3.0.33-3.7.el5_3.1
[03] 삼바 서비스 시작(데몬명 : smb)
# service smb start
SMB서비스를 시작 중: [ OK ]
NMB서비스를 시작 중: [ OK ]
[04] 환경 설정
# cd /etc/samba/
# ls
lmhosts passdb.tdb secrets.tdb smb.conf smbusers
# cp smb.conf smb.conf_old /* 삼바 메일설정파일 백업 */
# ls -al
-rw-r--r-- 1 root root 20 7월 14 18:56 lmhosts
-rw------- 1 root root 4096 9월 28 10:32 passdb.tdb
-rw------- 1 root root 8192 9월 28 10:32 secrets.tdb
-rw-r--r-- 1 root root 9733 7월 14 18:56 smb.conf
-rw-r--r-- 1 root root 9733 9월 28 10:33 smb.conf_old
-rw-r--r-- 1 root root 97 7월 14 18:56 smbusers
# vi smb.conf
--------------------------------------------------
/* 74 Line 이동 */
# workgroup = MYGROUP
workgroup = WORKGROUP
/* 101 Line 이동 */
# security = user
security = share
--------------------------------------------------
/* 각 라인별로 이동해서 동일하게 작업( # 은 주석문) */
[05] 삼바 설정을 다시 했으니 서비스 재시작
# service smb restart
SMB 서비스를 종료 중: [ OK ]
NMB 서비스를 종료 중: [ OK ]
SMB서비스를 시작 중: [ OK ]
NMB서비스를 시작 중: [ OK ]
[06] 테스트 두 가지 방법(첫번째로 확인하세요!)
# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:0C:29:F5:FC:40
inet addr:192.168.10.XXX Bcast:192.168.10.255 Mask:255.255.255.0
(첫번째) WinXP: [시작] -> [실행] -> \\리눅스아이피(eth0 IP)\
-> 접속해서 "프린터 및 팩스"가 나오면 정상이다!
(두번째) 내 네트워크 환경(더블 클릭) -> 전체 네트워크 ->
Microsoft Windows 네트워크 -> Workgroup ->
Samba Server Version (Localhost) = 확인!!!
[참고]
Samba Server Version (Localhost) 더블클릭하면 "사용 권한"에 대해서 나온다!
[07] WinXP에서 리눅스에 있는 /bin 디렉토리 공유 설정
# cd /etc/samba/
[root@localhost /]# vi /etc/samba/smb.conf
/* 문서 제일 마지막에 추가하자! */
----------------------------------------
# 2009-09-28 by leesangchul
[my_linux_bin_dir]
comment = itclass samba server
path = /bin
public = yes
writable = yes
printable = no
----------------------------------------
■ 새로운 설정을 했으니 smb 서비스 재 시작
# service smb restart
SMB 서비스를 종료 중: [ OK ]
NMB 서비스를 종료 중: [ OK ]
SMB서비스를 시작 중: [ OK ]
NMB서비스를 시작 중: [ OK ]
[08] 설정한 공유 디렉토리 확인 : [my_linux_bin_dir]
WinXP: [시작] -> [실행] -> \\리눅스아이피(eth0 IP)\
■ 일반 유저는 /bin 디렉토리에 읽기와 실행은 가능하지만 쓰기 권한은 없다.
# ls -ld /bin
drwxr-xr-x 2 root root 4096 4월 8 04:43 /bin
[08] 실습
■ 리눅스 /samba_test/ 디렉토리를 공유한다.
WinXP에서 쓰기 권한을 준다.
***************************************************************************
리눅스 프로그램 삭제
(예)ossec가 설치 되어 있다는 가정
1.ossec 중지
2.ossec 프로그램이 rpm 버전인지 또는 소스버전인지 각각 삭제하는 방법이 다릅니다.
02-1. rpm일 경우
#rpm -e 프로그램이름
02-2. 소스(ossec.tar.gz.파일 형식일 경우
(01)ossec 데몬 중지
#ps -ed | grep ossec
#service ossec stop
or #/var/ossec/bin/ossec-control stop
(02)런레벨 등록 확인
#chkconfig --list |grep ossec
#chkconfig --del ossec
(03)디렉토리 삭제
rm -rf /var/ossec/
***************************************************************************
[01] 특정 유저에게만 공유
이제 security를 user로 설정하고 삼바유저에게만 디렉토리를 공유해 보자!
# cd /etc/samba/
# ls
lmhosts passdb.tdb secrets.tdb smb.conf smb.conf_old smbusers
# vi smb.conf /* 101 Line 이동 */
--------------------------------------------------
# security = share
security = user
--------------------------------------------------
/* security = user 변경한다. */
/* :wq! 저정하고 나온다. */
<리눅스 설정>
삼바 서버로 접속할 수 있는 사용자를 추가해 줘야 한다.
삼바 유저는 smbpasswd 명령어를 이용하여 리눅스 시스템에 등록된 유저만 추가할 수 있다.
<명령어위치> : /usr/bin/smbpasswd
<사용형식> :
smbpasswd [-a] [-c <config file>] [-x] [-d] [-e] [-D debuglevel] [-n]
[-r <remote machine>] [-R <name resolve order>] [-m]
[-U username[%password]] [-h] [-s] [-w pass] [-W] [-i] [-L] [username]
[root@localhost /]# smbpasswd -a doom
New SMB password: itclass
Retype new SMB password: itclass
Added user doom.
■ smbpasswd의 주요 옵션
-d : 삼바유저 사용정지
-e : 삼바유저 다시 사용
-n : 비밀번호를 설정하지 않음
-x : 유저 삭제
--------------------------------------------------
When run by root:
smbpasswd [options] [username]
otherwise:
smbpasswd [options]
options:
-L local mode (must be first option)
-h print this usage message
-s use stdin for password prompt
-c smb.conf file Use the given path to the smb.conf file
-D LEVEL debug level
-r MACHINE remote machine
-U USER remote username
extra options when run by root or in local mode:
-a add user
-d disable user
-e enable user
-i interdomain trust account
-m machine trust account
-n set no password
-W use stdin ldap admin password
-w PASSWORD ldap admin password
-x delete user
-R ORDER name resolve order
--------------------------------------------------
■ 리눅스에서 새로운 "공유 디렉토리"를 추가한다.
/share_dir 디렉토리를 만들고 이 디렉토리를 로그인한 사용자(doom 계정)에게 공유한다.
# mkdir /share_dir
# cd /share_dir/
# pwd
/share_dir
# touch 111.txt
# chmod 777 /share_dir/
# ls -ld /share_dir/
drwxrwxrwx 2 root root 4096 9월 28 11:16 /share_dir/
■ smb.conf 파일 제일 마지막에 새롭게 공유할 부분을 추가한다.
[root@localhost share_dir]# vi /etc/samba/smb.conf
----------------------------------------
# 2009-09-28 by lee_sang_chul
[이상철-samba-server]
comment = leesangchul-samba-server
path = /share_dir
browseable = yes
writable = yes
----------------------------------------
■ 새로운 /share_dir 확인해보자!
(01) WinXP: [시작] -> [실행] -> \\리눅스아이피(eth0 IP)\
(02) [이상철-samba-server] 보이는지 확인!
(03) 보이지 않고, Error 메시지가 보이면, 설정값과 아래 XP 설정을 보기 바란다.
[문제해결] WIN XP -> [시작] -> [설정] -> [제어판] -> [보안 센터] 더블 클릭 후
"Windows 방화벽 - 사용 안함"으로 설정한다!
[문제해결] WIN XP -> [시작] -> [설정] -> [제어판] -> [사용자 계정] 더블 클릭 후
"Guest 계정을 사용"으로 설정한다!
[문제해결] 또는 Guest 계정에 "사용함"으로 설정하고, 암호(itclass)를 넣어주면 된다!
[02] 리눅스에서 윈도우의 공유폴더(c:\samba 디렉토리) 접속
smbclient 명령어를 이용해서 리눅스에서 윈도우의 공유 디렉토리에 접속해 보자!
(01) c:\samba 디렉토리를 만든다.
디렉토리 속성창을 열어 디렉토리를 "공유" 설정을 한다.
(02) 이제 sbmclient를 이용하여 리눅스에서 윈도우의 공유 디렉토리로 접속해 보자.
<명령어위치> : /usr/bin/smbclient
<사용형식> :
사용법: smbclient [-?] [-?EgV] [-?EgV] [-?EgVNkP] [-?|--help] [--usage]
[-R|--name-resolve NAME-RESOLVE-ORDER] [-M|--message HOST]
[-I|--ip-address IP] [-E|--stderr] [-L|--list HOST] [-t|--terminal CODE]
[-m|--max-protocol LEVEL] [-T|--tar <c|x>IXFqgbNan] [-D|--directory DIR]
[-c|--command 문자열(STRING)] [-b|--send-buffer BYTES] [-p|--port PORT]
[-g|--grepable] [-d|--debuglevel DEBUGLEVEL]
[-s|--configfile CONFIGFILE] [-l|--log-basename LOGFILEBASE]
[-V|--version] [-O|--socket-options SOCKETOPTIONS]
[-n|--netbiosname NETBIOSNAME] [-W|--workgroup WORKGROUP]
[-i|--scope SCOPE] [-U|--user USERNAME] [-N|--no-pass] [-k|--kerberos]
[-A|--authentication-file FILE] [-S|--signing on|off|required]
[-P|--machine-pass] service <password>
[참고] WinXP 에서 "Guest 계정을 사용함"으로 설정하고 암호를 지정해줘야 한다.
"Guest 계정 사용함"
"암호" : itclass
[예제.01] 암호 입력시
# smbclient //윈도우로컬아이피/samba
Password: itclass
session setup failed: NT_STATUS_LOGON_FAILURE
/* Error 화면 */
[예제.02] 암호 입력 없이 [Enter] 했을 경우
# smbclient //윈도우로컬아이피/samba
Anonymous login successful
Domain=[IT2] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
tree connect failed: NT_STATUS_ACCESS_DENIED
/* Error 화면 */
[예제.03] 암호 입력하고 정상적인 접속 화면
Domain=[IT2-TEACHER] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
smb: \> ls
NT_STATUS_ACCESS_DENIED listing \*
49999 blocks of size 2097152. 37206 blocks available
smb: \> quit
/* Error 화면 */
[예제.04] doom 계정으로 접속하면 정상적으로 된다!
# smbclient //121.166.120.XXX/samba -U doom
Password:
Domain=[IT2-TEACHER] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
smb: \> ls
. D 0 Mon Sep 28 11:53:12 2009
.. D 0 Mon Sep 28 11:53:12 2009
새 텍스트 문서.txt A 0 Mon Sep 28 11:53:12 2009
49999 blocks of size 2097152. 37205 blocks available
smb: \> quit
* 비밀번호를 입력하여 정상적으로 접속되면 smb: \> 프롬프트가 나타난다.
* 비밀번호가 없다면 입력하지 않아도 된다.
* 만약, 특정 사용자의 인증이 필요하다면 아래와 같이 -U 옵션을 추가해 준다.
(03) smbstatus 명령어(삼바 접속자 보기)
[root@localhost ~] # smbstatus
Samba version 3.0.23a-1.fc4.1
PID Username Group Machine
-------------------------------------------------------------------
Service pid machine Connected at
-------------------------------------------------------
No locked files
[root@localhost ~] #
(04) testparm 명령어(삼바 설정파일 점검 확인)
# testparm
Load smb config files from /etc/samba/smb.conf
Processing section "[homes]"
Processing section "[printers]"
Processing section "[my_linux_bin_dir]"
Processing section "[이상철-samba-server]"
Loaded services file OK.
WARNING: You have some share names that are longer than 12 characters.
These may not be accessible to some older clients.
(Eg. Windows9x, WindowsMe, and smbclient prior to Samba 3.0.)
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
[global]
server string = Samba Server Version %v
passdb backend = tdbsam
cups options = raw
[homes]
comment = Home Directories
read only = No
browseable = No
[printers]
comment = All Printers
path = /var/spool/samba
printable = Yes
browseable = No
[my_linux_bin_dir]
comment = itclass samba share
path = /bin
read only = No
guest ok = Yes
[이상철-samba-server]
comment = leesangchul-samba-server
path = /share_dir
read only = No
(05) 삼바 접속후 사용가능한 명령어
smb: \> help
? altname archive blocksize cancel
case_sensitive cd chmod chown del
dir du exit get getfacl
hardlink help history lcd link
lowercase ls mask md mget
mkdir more mput newer open
print prompt put pwd q
queue quit rd recurse reget
rename reput rm rmdir setmode
stat symlink tar tarmode translate
volume vuid logon listconnect showconnect
!
smb: \>
==========================================================================
testparm
잘못된 부분이 있으면, 스스로 테스트 해서 확인된 부부이 나온다.
===========================================================================
'시스템운영' 카테고리의 다른 글
[ UNIX/LINUX ] Shutdown (0) | 2016.07.12 |
---|---|
[ Mac ] 맥 OS 에서 root 계정 관리 하기 (0) | 2016.01.05 |
Linux 보안일반사항 (0) | 2016.01.05 |
[UNIX] Shared Memory 설정 (0) | 2016.01.05 |
[ solaris ] crontab (0) | 2016.01.05 |
댓글