Samba簡單介紹
Samba是在Linux和UNIX系統(tǒng)上實現(xiàn)與微軟Windows操作系統(tǒng)的SMB/CIFS(Server Message Block/Common Internet File System)網(wǎng)絡(luò)協(xié)定做連結(jié)的自由軟件,由服務器及客戶端程序構(gòu)成。
目前的版本(v3)不僅可存取及分享SMB的資料夾及打印機,本身還可以整合入Windows Server的網(wǎng)域,扮演為網(wǎng)域控制站(Domain Controller)以及加入Active Directory成員。簡而言之,此軟件在Windows與UNIX系列OS之間搭起一座橋梁,讓兩者的資源可互通有無。
Samba 功能和應用范圍
Samba 應該范圍主要是Windows和Linux 系統(tǒng)共存的網(wǎng)絡(luò)中使用;如果一個網(wǎng)絡(luò)環(huán)境都是Linux或Unix類的系統(tǒng),沒有必要用Samba,應該用NFS更好一點;那Samba 能為我們提供點什么服務呢?主要是共享文件和共享打印機。
搭建samba共享服務器
一、首先檢查一下服務器用的系統(tǒng)版本以及系統(tǒng)類型
1 2 3 4 5 6 7 8 | 1.[root@samba ~] # uname -a //查看內(nèi)核版本詳細信息,包括主機名稱 Linux samba 2.6.18-308.el5 #1 SMP Tue Feb 21 20:06:06 EST 2012 x86_64 x86_64 x86_64 GNU/Linux 2.[root@samba ~] # lsb_release -a //查看系統(tǒng)的發(fā)行版本及廠商 LSB Version: :core-4.0-amd64:core-4.0-ia32:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-ia32:printing-4.0-noarch Distributor ID: CentOS Description: CentOS release 5.8 (Final) Release: 5.8 Codename: Final |
二、首先安裝與samba相關(guān)的三個數(shù)據(jù)包,如果用rpm安裝不上,有依賴關(guān)系的話,那就直接用yum安裝即可。
1.檢查一下與samba相關(guān)的三個數(shù)據(jù)包是否已經(jīng)安裝成功
1 2 3 4 5 6 | [root@samba ~] # yum install -y samba* [root@samba ~] # rpm -qa | grep samba samba-common-3.0.33-3.39.el5_8 samba-swat-3.0.33-3.39.el5_8 samba-3.0.33-3.39.el5_8 //samba :這個套件主要包含了 SAMBA 的主要 daemon檔案 ( smbd 及 nmbd )、 SAMBA 的文件檔 ( document )、以及其它與 SAMBA 相關(guān)的logrotate 設(shè)定文件及開機預設(shè)選項檔案等。 samba-client-3.0.33-3.39.el5_8 // 這個套件則提供了當 Linux 做為SAMBA Client 端時,所需要的工具指令,例如掛載 SAMBA 檔案格式的執(zhí)行檔 smbmount等。 |
samba服務器主要提供以下兩個服務程序。
smbd:為客戶機提供服務器中共享資源(目錄和文件等)的訪問。
nmbd:提供基于NetBIOSS主機名稱的解析,為windows網(wǎng)絡(luò)中的主機進行名稱解析。
2.smb.conf的配置文件默認放在/etc/samba目錄下
1 2 3 4 5 | [root@samba samba] # ll /etc/samba/ total 32 -rw-r--r-- 1 root root 20 May 18 2012 lmhosts -rw-r--r-- 1 root root 9733 May 118 2012 smb.conf -rw-r--r-- 1 root root 97 May 118 2012 smbusers |
lmhosts:這個檔案的主要目的在對應NetBIOS name 與該主機名稱的 IP ,事實上,他有點像是 /etc/hosts 的功能.
smbusers:創(chuàng)建smb的虛擬用戶,存放在smbusers此文件中,用于驗證登陸。
smb.conf:samba配置文件默認存放的目錄,要是源碼包安裝可以自定義。
三、看一下配置文件中都有哪些信息,并且修改smb.conf配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | [root@samba samba] # grep -v "^[#;]" smb.conf | grep -v "^$" [global] workgroup = MYGROUP server string = Samba Server Version % v # logs split per machine # max 50KB per log file, then rotate security = user passdb backend = tdbsam # the login script name depends on the machine name # the login script name depends on the unix user used # disables profiles support by specifing an empty path load printers = yes cups options = raw #obtain list of printers automatically on SystemV [homes] comment = Home Directories browseable = no writable = yes [printers] comment = All Printers path = /var/spool/samba browseable = no guest ok = no writable = no printable = yes |
1.把配置文件重定向到一個文件,并且備份smb.conf的源文件
1 2 3 | [root@samba samba] # grep -v "^[#;]" smb.conf | grep -v "^$" >>tt1.txt [root@samba samba] # mv smb.conf smb.conf.ori [root@samba samba] # mv tt1.txt smb.conf |
2.下面詳細介紹一下smb.conf配置文件中的重要信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | [root@samba ~] # vim /etc/samba/smb.conf [global] workgroup = MYGROUP // 服務器所在的工作組名稱,例如“WORKGROUP” server string = Samba Server Version % v // 描述服務器的說明文字 hosts allow = 127. 192.168.1. 192.168.13. // 默認是注釋的,表示允許所有的IP地址訪問, log file = /var/log/samba/ %m.log //Samba 服務器的日志文件,默認放在 "/var/log/samba" 這個目錄下 security = share // 一共有四個安全級別:share(共享)、user(需要本地服務器驗證用戶以及密碼) 、server(有另一臺服務器驗證有戶名和密碼)、domain(由windows域控制器驗證有戶名和密碼) passdb backend = tdbsam // tdbsam:使用數(shù)據(jù)庫文件創(chuàng)建用戶數(shù)據(jù)庫。數(shù)據(jù)庫文件叫passdb.tdb,在 /etc/samba 中。passdb.tdb用戶數(shù)據(jù)庫可使用smbpasswd –a創(chuàng)建Samba用戶,要創(chuàng)建的Samba用戶必須先是系統(tǒng)用戶。 load printers = yes // 當Samba 服務啟動時,自動加載的打印機配置文件 cups options = raw // 指定打印機使用的方式。 printcap name = /etc/printcap // 默認設(shè)置打印機配置文件的位置目錄 printcap name = lpstat printing = cups // 設(shè)置打印系統(tǒng)類型,一般默認。只有在打印系統(tǒng)不是標準系統(tǒng)時才指定。 設(shè)置打印系統(tǒng)類型,一般默認。只有在打印系統(tǒng)不是標準系統(tǒng)時才指定。 #obtain list of printers automatically on SystemV [homes] // 用戶目錄共享設(shè)置 comment = Home Directories // 描述信息 browseable = no // 設(shè)置其他用戶是否可以瀏覽此共享文件。 writable = yes // 設(shè)置此用戶是否可寫 [printers] // 打印機共享設(shè)置 comment = All Printers // 描述信息 path = /var/spool/samba // 共享服務器默認路徑 browseable = no // 是否有目錄瀏覽權(quán)限 guest ok = no // 是否允許允許來賓訪問 writable = no // 用戶對共享目錄可寫 printable = yes // 是否可以打印,默認是 yes (允許) [beyond] // 自定義共享目錄文件 comment = Public share with beyond file // 描述信息 path = /var/public/beyond // 自定義的共享文件目錄路徑 public = yes // 共享目錄允許所有用戶訪問及上傳文件) read only = yes // 權(quán)限為只讀權(quán)限 |
3.查看下修改后的samba服務器的主配置文件smb.conf信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | [root@samba samba] # cat smb.conf [global] workgroup = MYGROUP server string = Samba Server Version % v log file = /var/log/samba/ %m.log hosts allow = 127. 192.168.1. 192.168.13. # logs split per machine # max 50KB per log file, then rotate security = share passdb backend = tdbsam # the login script name depends on the machine name # the login script name depends on the unix user used # disables profiles support by specifing an empty path load printers = yes cups options = raw #obtain list of printers automatically on SystemV [homes] comment = Home Directories browseable = no writable = yes [printers] comment = All Printers path = /var/spool/samba browseable = no guest ok = no writable = no printable = yes [beyond] comment = Public share with beyond file path = /var/public/beyond public = yes read only = yes |
4.創(chuàng)建上邊自定義指定的共享文件
[root@samba samba]# mkdir -p /var/public/beyond
[root@samba samba]# mkdir -p /var/public/beyonds/test
5.最后,需要開啟smb服務才能生效
[root@samba samba]# /etc/init.d/smb start
四、在windows server 2003客戶端上進行測試,訪問linux上的samba服務器
1.直接點擊確定,看下是否可訪問到beyond這個共享的目錄
2.無需密碼驗證,已經(jīng)訪問到了beyond這個目錄和打印機
進到beyond目錄下, 還能看到test此目錄,ok,共享成功!
3.可以進去,看到了原來創(chuàng)建的文件夾和文件,無法創(chuàng)建文件。為什么創(chuàng)建不了呢?是因為share的用戶,設(shè)置read only = yes(只讀權(quán)限)。
四.建立帶驗證性的文件共享服務器
1.創(chuàng)建三個smb賬號和密碼
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | [root@samba ~] # useradd tt1 [root@samba ~] # useradd tt2 [root@samba ~] # smbpasswd -a tt1 New SMB password: Retype new SMB password: Added user tt1. [root@samba ~] # smbpasswd -a tt2 New SMB password: Retype new SMB password: Added user tt2. [root@samba ~] # smbpasswd -a root New SMB password: Retype new SMB password: Added user root. |
2.查看下修改的smb.conf的配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | [root@samba samba] # head smb.conf [global] workgroup = WORKGROUP server string = Samba Server Version % v log file = /var/log/samba/ %m.log hosts allow = 127. 192.168.1. 192.168.13. # logs split per machine # max 50KB per log file, then rotate security = user passdb backend = tdbsam # the login script name depends on the machine name [root@samba samba] # tail smb.conf read only = yes [taokey] comment = Public share with taokey files path = /var/public/taokey public = no writable = yes valid users = tt1,tt2 @root writelist = root,tt2 directory mask = 0744 create mask = 0600 |
3.創(chuàng)建制定共享的目錄和文件
1 2 3 | [root@samba samba] # mkdir -p /var/public/taokey [root@samba samba] # mkdir -p /var/public/taokey/test [root@samba samba] # touch /var/public/taokey/taoyake.txt |
4.重啟smb服務器生效
[root@samba samba]# /etc/init.d/smb restart
5.重新用windows server 2003客戶端訪問samba服務器,彈出一個驗證賬號和密碼的框
6.輸入之前創(chuàng)建的tt1賬號和密碼,可以登陸進去
7.輸入賬號和密碼以后,審核成功,進入smb共享服務器。
8.訪問taokey,看到了創(chuàng)建的目錄和文件
1 2 3 4 5 6 7 8 9 10 11 | [root@samba samba] # tail smb.conf read only = yes [taokey] comment = Public share with taokey files path = /var/public/taokey public = no writable = yes valid users = tt1,tt2 @root writelist = root,tt2 directory mask = 0744 create mask = 0600 |
因為可寫的只有tt2和root賬號,所以tt1寫不了
服務器的自帶的文件權(quán)限對文件也要有寫的權(quán)限,才可以寫
[root@samba public]# chmod a+w /var/public/taokey
按上邊的配置來說,應該是可以tt2是可以創(chuàng)建和刪除文件的。咱們試試tt2,能不能創(chuàng)建或者刪除文件。
注意:在測試samba時,默認情況下,第一次登陸后,再次登陸(\\samba服務器IP地址)會記住早先登陸的用戶、密碼。所以,如果想換個用戶測試登陸的效果,可以先執(zhí)行命令“net use * /del”,再次\\samba服務器IP地址,就會提示輸入用戶名、密碼。
9.重新訪問法samba服務器的IP地址,輸入tt2賬號和密碼。
從圖中可以看出來可以創(chuàng)建文件
從圖中可以看出來,tt2用戶可以在taokey目錄下創(chuàng)建新文檔
10.再創(chuàng)建一個ssh的目錄試一下
刪除hello.txt,試一下
從圖中看出來是可以刪除的
到此為止,實驗結(jié)束。
聯(lián)系客服