(6)支持SSL安全套接層協議
4.2 安裝和啓動Samba
Samba 軟件安裝在Linux 一端。目前主要由一個20人左右的Samba 團隊負責維護及開發,用戶可以在http://www.samba.org/站點獲得Samba的詳細信息。同時,也可以在網頁上下載Samba 的最新版本
4.2.1 安裝Samba服務器
如果用戶在安裝Linux 時已經安裝了Samba ,就無需再安裝了可以通過下列命令確定是否已經安裝了Samba 。
[root@ smb_server root]# rpm –qa | grep samba
samba-commom -2.2.7a-7.9.0
samba-2.2.7a-7.9.0
samba-client-2.2.7a-7.9.0
redhat-config-samba-1.0.4-1
samba-swat-2.2.7a-7.9.0
若出現這5個軟件包,則表示已經安裝了Samba ,否則必須安裝Samba 。
[root@smb_server root]# mount /dev/cdrom /mnt/cdrom
將光盤掛載到 /mnt/cdrom目錄]
[root@smb_server root]# cd /mnt/cdrom/RedHat/RPMS
切換到放置rpm文件的目錄
[root@smb_server root]# rpm -ivh samba-commom -2.2.7a-7.9.0i386.rpm
這是Samba 必備的程序,必須安裝
[root@smb_server root]# rpm -ivh samba-2.2.7a-7.9.0.i386.rpm
安裝Samba 服務器程序,可以使我Windows 主機訪問Samba 服務器共享的資源。
如果需要使Linux 主機訪問Windows 主機上的共享資源,則還應該安裝Samba 客戶端程序。
[root@smb_server root]# rpm -ivh samba-client-2.2.7a-7.9.0.i386.rpm
4.2.2 Samba的全局參數的配置
Samba最主要的配置文件是 /etc/samba/smb.conf,其中有很多選項可以設置,但作爲初學者,只需要掌握其中一小部分選項的設置就可以配置所需要的Samba服務器了。在瞭解基本配置的基礎上,就能很快架設一個基本的Samba服務器。在基本配置文件中,也只用到其中一小部分命令選項。
全局參數的配置在[global]字段中,沒有出現(或被註釋)的參數,Samba 採用的是默認配置。
# This is the main Samba configuration file. You should read the
# smb.conf(5) manual page in order to understand the options listed
# here. Samba has a huge number of configurable options (perhaps too
# many!) most of which are not shown in this example
#================== Global Settings ============================
[global]
#這是配置文件中關於全局參數的設置部分。
…………
workgroup = SMBGROUP
#這是設置服務器所要加入的工作組的名稱,會在Windows 的“網上鄰居”中能看到MYGROUP工作組,可以在此設置所需要的工作組的名稱。
netbios name=smb-server
#設置出現在“網上鄰居”中的主機名。默認情況下,則使用真正的主機名。
server string = Samba Server
#這是設置服務器主機的說明信息,當在Windows 的“網上鄰居”中打開Samba 上設置的工作組時,在Windows 的資源管理器窗口,會列出“名稱”和“備註”欄,其中“名稱”欄會顯示出Samba服務器的NetBios名稱,而“備註”欄則顯示出此處設置的“Samba Server”。當然,可以修改默認的“Sambe Server”,使用自己的描述信息。
hosts allow = 192.168.1. 127
#這裏是設置允許什麼樣的IP地址的主機訪問Samba服務器。默認的情況下,hosts allow選項被註釋,表示允許所有IP地址的主機訪問。
guest account = pcguest
#設置當訪問那些被設置了“guest ok=yes”參數的資源時所要使用的帳號名。默認的帳號爲”nobody”,如果不想用默認的值,則應該去掉註釋用的分號,用你想要的帳號(如pcguest、 zhangsan等 ),然後,你必需將這一新帳號加入到/etc/passwd文件中去。
client code page=950
設置客戶端訪問Samba 服務器時所使用的字符編碼表(code page),默認值爲850,如果Samba 服務器要使用年中文名稱來來命名共享的資源,要將此值改爲950
log file = /var/log/samba/%m.log
#這一選項要求Samba服務器爲每一個連接的機器使用一個單獨的日誌文件,指定文件的位置,名稱。Samba會自動將%m轉換成連接主機的NetBios名。
max log size = 0
指定日誌文件的最大容量(以KB爲單位),設置爲0,表示沒有限制。默認值爲5000。
max disk size =1000
#設置能夠共享的最大磁盤空間,單位爲MB,默認值爲0,表示不作任何限制。
max open file =100
#設置同一客戶端最多能打開文件的數目,默認值爲10000個。
security = user
#設置Samba服務器的安全等級。默認情況下,使用user等級。
#Samba服務器一共有四種安全等級。
share: 使用此等級,用戶不需要帳號及密碼可以登陸Samba服務器。
user: 使用此等級,由提供服務的Samba服務器檢查用戶帳號及密碼。
server: 使用此等級,檢查帳號及密碼的工作可指定另一臺Samba服務器負責。
domain: 使用此等級,需要指定一臺Windows NT/2000/XP服務器(通常爲域控制器),以驗證用戶輸入的帳號及密碼。
; password server = <NT-Server-Name>
#如果安全等級爲“server”或“domain”,則使用此選項指定要驗證密碼的主機名。
password level = 8
username level = 8
#設置當驗證用戶口令和帳號時最多允許幾個大小寫字不同。默認值爲0。
encrypt passwords = yes
#設置當Samba客戶端將帳號及密碼傳送到服務器端時,是否採取密碼加密的方式。客戶的操作系統如果是Windows 95 OSR2 及NT SP3以後的版本,應該將此選項的值設爲yes,默認值爲no。
smb passwd file = /etc/samba/smbpasswd
#設置在Samba服務器上存放加密的密碼文件的位置(注意:Samba服務器與Linux採用不同的密碼文件)。
4.2.3 設置Samba密碼文件
smb.conf 文件中有“smb password file =/ect/samba/smbpassword”一行設置項,現在就要創建該設置項所指定的/ect/samba/smbpassword密碼文件(若是用Windows NT/2000Server 來驗證密碼,則可以跳過此段內容)。以root帳號登錄,然後按下列步驟進行:
[root@smb_server root]#cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd
[root@ smb_server root]# chmod 500 /etc/samba
[root@ smb_server root]# chmod 600 /etc/samba/smbpasswd
此步驟是將未加密的/etc/passwd文件轉換成加密的smbpasswd文件。基於保密的原則,將/etc/samba目錄的權限設爲500,該文件的權限設爲600,以避免他人取得密碼文件。
完成之後再利用smbpasswd命令,設置/ect/samba/smbpassword文件中每個帳號所使用的密碼。(下面以fred爲例。注意:此處設置的密碼是fred要訪問Samba服務器的密碼,並非登錄Linux 主機的密碼,默認設置”UNIX password sync=YES”, 則登錄Linux 主機的密碼將改變,與Samba服務器的密碼一致,如果希望這兩個密碼不一致,則設置”UNIX password sync=NO”)
[root@smb_server root]# smbpasswd fred
New SMB password: 此處輸入密碼
Retype SMB password: 重新輸入密碼
Password changed for user fred 看到這一句表示密碼設置成功。
4.2.4 啓動Samba服務器
可以執行下面的命令來啓動Samba服務器:
[root@ smb_server Root]# service smb start
當能看到下面的顯示,就表示啓動成功。
Starting SMB service [確定]
Starting NMB service [確定]
如果要暫停或重新啓動Samba服務器,只要將上面命令中的start 改爲stop或restat就可以了。
也可以讓系統在每次開機時就啓動Samba服務器。執行ntsysv命令,進入Service設置畫面,選擇smb選項,單擊確定即可。
4.2.5 測試Samba配置文件
設置好smb.conf文件之後,執行下面的命令測試smb.conf的設置語法是否正確。
[root@smb_server root]# testparm
Load smb config files from /etc/samba/smb.conf
Processing section "[homes]"
Processing section "[printers]"
Processing section "[tmp]"
Processing section "[public]"
Processing section "[fredsdir]"
Loaded services file OK.
Press enter to see a dump of your service definitions
表示正確。
檢查正常後,一定要記得執行
[root@smb_server root]# service smb restart
命令,重新啓動Samba服務器。
4.3 配置Samba 文件共享
完成了全局環境的設置之後,可以設置共享的資源(包括共享的文件和打印機)了。先來介紹如何配置Smb.conf,實現文件的共享。
4.3.1 設置共享資源參數
comment
#針對共享資源所作的說明、註釋部分
browseable
#設置用戶是否可以看到此共享資源。默認值爲yes,若將此參數設置爲no,用戶雖然看不到此資源,但是擁有權限的用戶仍可直接輸入該資源的網址來訪問該資源。
writable
#設置共享的資源是否可以寫入。若共享資源是打印機,則不需設置此參數
#設置可訪問的用戶。系統會自動將%S轉換成登錄帳號。
create mode
# 設置文件的訪問權限,默認值爲0744。
directory mode
設置目錄的訪問權限,默認值爲0755。
path
#若共享資源是目錄,則指定目錄的位置;若爲打印機,則指定打印機隊列的位置。
read only
#設置共享資源是否只讀或可以寫入,默認值爲yes。若共享資源爲打印機時,此參數無任何意義。這一項與writable相反。
Public
#等同於guest ok選項,表示是否允許用戶不使用帳號和密碼便能訪問此資源。如果起用此功能,當用戶沒有帳號和密碼時,則會利用“guest account=”所設置的帳號名登錄。該選項默認值爲no,即不允許沒有帳號即密碼的用戶使用此資源。
avalible
#設置是否啓用此共享資源。默認值爲yes。若將此參數設置爲no,則不管其他參數設置爲什麼,所有人均不得使用此資源。
valid users
4.3.2 配置Samba文件共享舉例
以下通過配置3個不同的共享目錄爲例,可以知道配置Samba文件共享的一般方法。
[global]
…………
#採用前面的[global]配置
[homes]
#用來配置用戶訪問自己的目錄
comment = Home Directories
#註釋
browseable = no
#用戶私人目錄,不給別人瀏覽(並不是不允許別人訪問)
writable = yes
#允許用戶寫入自己的目錄
valid users = %S
#可訪問的用戶侷限於用戶自己。%s會被自動轉換爲登錄帳號。
create mode = 0664
#文件的訪問權限
directory mode = 0775
#目錄的訪問權限
# This one is useful for people to share files
[tmp]
#這個部分爲所有用戶提供臨時共享的方式
comment = Temporary file space
#註釋文字
path = /tmp
#指定位置
read only = no
#可以讀寫
public = yes
#允許用戶不用帳號和密碼訪問
[public]
# 這個部分爲所有用戶提供可以共同訪問的目錄。允許staff組用戶寫入,但其他用戶只可訪問,不能寫入。
comment = Public Stuff
path = /home/samba
public = yes
writable = yes
printable = no
write list = @staff
# write list參數是用來設置具有寫權限的用戶列表。這裏只允許staff組的成員有寫的權限
[fredsdir]
#這個部分用來設置某一用戶fred的訪問權限。
comment = Fred’s Service
path = /usr/fred/private
valid users = fred
#只有fred可以訪問(注意:即使security=share,也不代表用戶登錄Linux 主機後可以訪問任意資源。)該共享目錄
public = no
writable = yes
printable = no
說明:配置文件修改後,要重新用testparm測試配置文件,重新啓動Samba 服務器程序。