SAMBA服務的配置。
SAMBA簡介
NFS只能實現在linux和unix系統之間實現文件共享,而CIFS(公共因特網文件系統)只能實現windows系統之間的文件共享。那么linux或unix系統怎么和windows系統之間共享文件呢?這就要用到SAMBA服務器了,SAMBA服務器能真正實現在不同主機、不同系統之間的文件共享。
Samba核心有兩守護進程:
smbd:監聽139端口,實現主機之間的文件和打印機的共享。
nmbd:監聽137,138端口,實現主機之間可以利用NetBios名互相訪問。
SAMBA安裝
配置IP地址:
[root@rhel3 ~]# ifconfig eth0 192.168.100.30 netmask 255.255.255.0
安裝軟件:
[root@rhel3 ~]# rpm -ivh /misc/cd/Server/samba-common-3.0.33-3.7.el5.i386.rpm
提供samba的配置文件和語法檢驗工具,服務器和客戶端都要安裝。
[root@rhel3 ~]# rpm -ivh /misc/cd/Server/samba-client-3.0.33-3.7.el5.i386.rpm
客戶端軟件。
[root@rhel3 ~]# rpm -ivh /misc/cd/Server/perl-Convert-ASN1-0.20-1.1.noarch.rpm //在安裝samba服務器軟件時要先安裝此軟件。
[root@rhel3 ~]# rpm -ivh /misc/cd/Server/perl-Convert-ASN1-0.20-1.1.noarch.rpm //安裝samba前要裝上這個軟件。
[root@rhel3 ~]# rpm -ivh /misc/cd/Server/samba-3.0.33-3.7.el5.i386.rpm
服務器端軟件。
[root@rhel3 ~]# rpm -ivh /misc/cd/Server/xinetd-2.3.14-10.el5.i386.rpm
安裝下面的網頁配置軟件時要先把xinetd軟件先裝上。
[root@rhel3 ~]# rpm -ivh /misc/cd/Server/samba-swat-3.0.33-3.7.el5.i386.rpm
samba的WEB配置。這個最后安裝。
SAMBA服務配置文件詳解。
[global]
# ----------------------- Network Related Options -------------------------
workgroup = MYGROUP
設置工作組名稱。
server string = Samba Server Version %v
設置服務器描述。
; netbios name = MYSERVER
設置NetBios名稱。
; interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
后面可以跟接口或IP地址,如果服務器不想用默認的IP地址時或想用多個IP地址時設置 此項。
; hosts allow = 127. 192.168.12. 192.168.13.
設置允許訪問主機的IP地址。默認注釋,表示允許所有主機訪問。
# --------------------------- Logging Options -----------------------------
; log file = /var/log/samba/%m.log
設置日志文件的存放位置,服務器會每個用戶保存一個日志文件,%m表示使用用戶訪問的NetBios名來命令日志文件。
; max log size = 50
指定日志文件的大小,單位(KB)
# ----------------------- Standalone Server Options ------------------------
security = share
設置Samba共享安全級別:
share: 共享級別,服務器不對客戶機進行身份驗證。
user: 用戶級別,服務器對客戶機進行身份驗證。
server: 服務器級別,Samba服務器必須通過另一臺服務器對客戶機進行身份驗證。如果設置為此值,需另加一行:password Server = IP才行。
domain: 域級別,Samba服務器要通過windows server的域控制器對客戶機進行身份驗證,同樣,如果設置為此值,需另加一行:password Server = IP才行。
passdb backend = tdbsam
指定Samba服務器對用戶帳戶和密碼的管理方式。一般默認即可。
# ----------------------- Browser Control Options ----------------------------
; local master = no
如果不想Samba服務器成為局域網內的主瀏覽服務器,此項選擇no.
; os level = 33
設置刻服務器在局域網內訪問的優先級。
; preferred master = yes
使Samba啟動時選擇一個本地瀏覽器,并給它獲得選擇較高的機會。
#----------------------------- Name Resolution -------------------------------
; wins support = yes
是否支持WINS服務器,Samba可以成為WINS服務器,也可以成為WINS客戶端,但不能兩者兼得。
; wins server = w.x.y.z
WINS服務器地址。
; wins proxy = yes
表示一個非WINS用戶通知Samba響應名稱解析,本身不為客戶端提供查詢。
; dns proxy = yes
同上。
# --------------------------- Printing Options -----------------------------
load printers = yes
設置是否允許打印機共享,并加裁打印機。
cups options = raw
指定打印機使用的方式。
; printcap name = /etc/printcap
設置打印機配置文件的位置。
; printcap name = lpstat
; printing = cups
設置打印系統類型,一般默認。只有在打印系統不是標準系統時才指定。
#============================ Share Definitions ================
[homes]
comment = Home Directories
描述信息。
browseable = no
設置其他用戶是否可以瀏覽此共享文件。
writable = yes
設置此用戶是否可寫。
valid users = %S
設置可訪問的用戶和組。多個用戶用逗號分開,指定組時要在組名前加@。
invalid users = 用戶名/組名
設置不能訪問的用戶和組,用法同上。
Samba定義的變量:
%S 當前服務器名。
%P 當前服務器的根目錄。
%u 當前服務器的用戶名。
%g 當前用戶所在的主工作組。
%U 當前對話的用戶名。
%G 當前對話的用戶我主工作組。
%H 當前服務器用戶的home目錄。
%v Samba服務器的版本號。
%h 運行Samba服務器的主機名。
%m 客戶機的NetBios名。
%L 服務器的NetBios名。
%M 客戶機的主機名。
%N NIS服務器名。
%p NIS服務器的Home目錄。
%R 所采用的服務器等級。
%d 當前服務進程的ID。
%a 客戶機和結構。
%I 客戶機的IP。
%T 當前日期和時間。
SAMBA基于共享的簡單配置。
編輯配置文件:
[root@rhel3 ~]# vi /etc/samba/smb.conf
# ----------------------- Standalone Server Options ------------------------
security = share //不需要用戶名和密碼的共享模式。
passdb backend = tdbsam
下面是共享目錄和權限的設置:(在最后添加)
[share]
comment = linux share
path = /rhel3
public = yes
writable = yes
printable = no
write list = +staff
如果共享目錄是復制例子的,別忘了把前面的;去掉哦!如果還不能訪問那就是防火墻在搗亂了。
[root@rhel3 ~]# mkdir /rhel3
[root@rhel3 ~]# touch /rhel3/linux.txt
[root@rhel3 ~]# vi /rhel3/linux.txt
This is linux server!
查看一下文件夾的權限:
[root@rhel3 ~]# ll /
drwxr-xr-x 2 root root 4096 Jun 8 21:56 rhel3
因為在共享時設置的是可寫的,而在這里除了root用戶其他人是沒有權限寫入,所有還是不能寫入,修改一下:
[root@rhel3 ~]# chmod 777 /rhel3
[root@rhel3 ~]# ll /
drwxrwxrwx 2 root root 4096 Jun 8 21:56 rhel3
權限已經修改完成。
[root@rhel3 ~]# service smb restart
現在來測試一下:
windows系統在運行里輸入:

linux系統:
[root@rhel2 ~]# mount //192.168.100.30/share /mnt //mount 后面跟主機名或IP地址,后面是共享名。最后跟掛載點。
Password: //這里不需要輸入密碼。
[root@rhel2 ~]# ls /mnt
liunx.txt
使用smbclient:
[root@rhel2 ~]# smbclient //192.168.100.30/share //smbclient后面跟共享主機名或IP地址再加上共享名。
Password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.0.33-3.7.el5]
Server not using user level security and no password supplied.
從這里也可以看到服務器是沒有使用身份驗證的。
smb: \> help
? altname archive blocksize cancel
case_sensitive cd chmod chown close
del dir du exit get
getfacl hardlink help history lcd
link lock lowercase ls mask
md mget mkdir more mput
newer open posix posix_open posix_mkdir
posix_rmdir posix_unlink print prompt put
pwd q queue quit rd
recurse reget rename reput rm
rmdir showacls setmode stat symlink
tar tarmode translate unlock volume
vuid wdel logon listconnect showconnect
!
這里顯示的是一些客戶端使用的命令。如:
smb: \> dir
. D 0 Wed Jun 9 14:42:23 2010
.. D 0 Wed Jun 9 14:41:23 2010
liunx.txt 22 Wed Jun 9 14:42:23 2010
61880 blocks of size 65536. 25838 blocks available
因為有寫的權限,所以寫個文件試試:
smb: \> mkdir rhel2
smb: \> dir
. D 0 Wed Jun 9 15:43:18 2010
.. D 0 Wed Jun 9 14:41:23 2010
liunx.txt 22 Wed Jun 9 14:42:23 2010
rhel2 D 0 Wed Jun 9 15:43:18 2010
61880 blocks of size 65536. 25838 blocks available
沒問題,可以寫入。下載文件:
smb: \> get liunx.txt /share.txt //get后面第一個參數是遠程服務器的文件名,第二個參數是保存到本地的文件名。
getting file \liunx.txt of size 22 as /share.txt (0.2 kb/s) (average 0.2 kb/s)
smb: \> q //退出
[root@rhel2 ~]# ls /
bin dev lib misc opt sbin srv usr
boot etc lost+found mnt proc selinux sys var
chenbin home media net root share.txt tmp
[root@rhel2 ~]# cat /share.txt
This is linux server!
沒問題,關于每個命令的使用這里就不一一演示,詳細說明可以使用幫助。命令如下:
[root@rhel2 ~]# man smbclient
SAMBA基于用戶的簡單配置。
接著上面的做:
修改配置文件:
# ----------------------- Standalone Server Options ------------------------
security = user
共享目錄也就不改了。因為是基于用戶的共享,所以這里需要建立用戶。
[root@rhel3 ~]# useradd samba //首先要建立本地用戶。
[root@rhel3 ~]# passwd samba //為本地用戶創建密碼。(如果只是添加Samba用戶,這步可以省略。)
Changing password for user samba.
New UNIX password:
BAD PASSWORD: it is too short
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@rhel3 ~]# smbpasswd -a samba //創建Samba用戶。創建的用戶必須也存在于本地用戶數據庫中。
New SMB password:
Retype new SMB password:
Added user samba.
[root@rhel3 ~]# service smb restart
可以測試一下samba的配置文件。如下:

測試:
在windows系統下:
因為連接過了,現在連接的話系統不提示輸入用戶名和密碼了,清除一下:在命令提示符下操作:
D:\Users\chenbin>net use //查看遠程連接。
會記錄新的網絡連接。
net use * /delete /y
smbstatus 服務器端查看訪問的客戶端信息
posted on 2012-07-19 16:23
kxbin 閱讀(420)
評論(0) 編輯 收藏 所屬分類:
Linux