本片博客主要介紹了[Samba] Linux(Centos)samba文服務器安裝案例,samba共享,samba服務,samba配置詳解及網頁配置samba工具samba-swat 的使用方法等。
linux
Samba Server
ios
Samba簡介web
Samba,是種用來讓UNIX系列的操做系統與微軟Windows操做系統的SMB/CIFS(Server Message Block/Common Internet File System)網絡協議作連接的自由軟件。主要功能是做爲 NFS系統(linux系統之間文件共享) 的補充,實如今 Linux 和 Windows 系統中進行文件共享和打印機共享。數據庫
SMB(Server Messages Block,信息服務塊)是一種在局域網上共享文件和打印機的一種通訊協議,它爲局域網內的不一樣計算機之間提供文件及打印機等資源的共享服務。windows
CIFS 協議(Common Internet File System,公共Internet文件系統) 定義網絡中使用的標準遠程文件系統訪問協議,使用戶組可以一塊兒工做並在網絡中實現共享文檔。後端
Samba服務採用C/S模式,,其工做機制是讓NetBIOS(Windows 網上鄰居的通訊協議)和SMB兩個協議運行於TCP/IP通訊協議之上,而且用NetBEUI協議讓Windows在「網上鄰居」中能瀏覽Linux服務器。Samba服務器既能夠充當文件共享服務器,也能夠充當一個Samba的客戶端,例如,一臺在Linux 下已經架設好的Samba服務器,windows客戶端就能夠經過SMB協議共享Samba服務器上的資源文件,同時,Samba服務器也能夠訪問網絡中 其它windows系統或者Linux系統共享出來的文件。瀏覽器
Samba服務安全
Samba所需軟件包括:Samba(服務器端軟件包),Samba-client(客戶端軟件包),Samba-common(Samba公共文件軟件包),Samba-Winbind(使用 Windows 域控制器管理 Linux 賬戶);bash
Samba由smbd 和 nmbd兩個守護進程組成:服務器
smbd服務進程是Samba的核心啓動服務,主要負責創建 Linux Samba服務器與Samba客戶機之間的對話,爲客戶端提供文件共享與打印機服務及負責用戶權限驗證以及鎖功能,smdb默認監聽端口是 139 與 445 TCP端口。Samba經過smb服務啓動smbd進程,可以使用命令 # netstat -nutlp 能夠查看進程端口信息;
nmbd進程提供NetBIOS名稱服務,以知足基於Common Internet File System(CIFS)協議的共享訪問環境(相似與DNS實現的功能,實現把Linux系統共享的工做組名稱與其IP對應起來),Samba經過nmb 服務啓動 nmbd進程,該進程默認監聽的是137與 138 UDP端口;
Samba服務器可實現以下功能:WINS和DNS服務; 網絡瀏覽服務; Linux和Windows域之間的認證和受權; UNICODE字符集和域名映射;知足CIFS協議的UNIX共享等。
Samba服務器訪問
Samba服務器的IP地址爲192.168.0.150,對應的工做組名稱爲ITWISH。
Windows下查看Linux Samba服務器共享文件的方法,可經過「IE瀏覽器」或雙擊打開「個人電腦」,方式以下:
\\192.168.0.150\共享目錄名稱
\\ITWISH\共享目錄名稱
linux 下查看Linuxsamba服務器的方法,可經過命令smbclient ,方法以下:
# smbclient //192.168.0.150/共享目錄名稱 -U username
linux下手動掛載samba共享目錄的方法,可經過命令mount ,方法以下
# mount -t cifs //192.168.0.150/共享目錄 /mnt -o username=name
linux下自動掛載samba共享目錄的方法,方法以下
[root@vm ~]# vi /etc/fstab # 添加以下項,直接顯示用戶名及密碼 //192.168.23.100/FM /tmp/fm cifs defaults,_netdev,user=fmadmin,password=fmadmin 0 0
或者
[root@vm ~]# vi /etc/fstab # 添加以下項,以配置文件的方式驗證用戶及密碼 //192.168.23.100/FM /tmp/fm cifs defaults,_netdev,credentials=/etc/samba/pwd.txt 0 0 [root@vm ~]# vi /etc/samba/pwd.txt # 添加用戶名及密碼 username=fmadmin password=fmadmin
相關命令的選項及功能
# smbclient命令,它提供一種命令行使用交互式方式訪問samba服務器的共享資源 ,用法以下:
smbclient -L 198.168.0.150 -U username%password # 列出samba共享服務器端的文件列表
smbclient //192.168.0.150/public -U username%password # 像ftp同樣,使用smbclient 與samba服務器進行交互操做
smbclient -c "ls" //192.168.0.150/public -U username%password # 不進入交互界面,直接顯示共享目錄下的列表文件
# smbpasswd 命令,實現添加或刪除samba用戶和爲用戶修改密碼 ,保存到單獨的文件中
-a:向smbpasswd文件中添加用戶;
-c:指定samba的配置文件;
-x:從smbpasswd文件中刪除用戶;
-d:在smbpasswd文件中禁用指定的用戶;
-e:在smbpasswd文件中激活指定的用戶;
-n:將指定的用戶的密碼置空。
例:smbpasswd -a itwish -c /etc/samba/smb.pass # 第一次建立用戶itwish並指定密碼文件爲/etc/samba/smb.pass
# pdbedit 命令,實現添加或刪除samba用戶和爲用戶修改密碼,添加到passdb.tdb庫中
pdbedit –a username:新建Samba帳戶。
pdbedit –x username:刪除Samba帳戶。
pdbedit –L:列出Samba用戶列表,讀取passdb.tdb數據庫文件。
pdbedit –Lv:列出Samba用戶列表的詳細信息。
pdbedit –c 「[D]」 –u username:暫停該Samba用戶的帳號。
pdbedit –c 「[]」 –u username:恢復該Samba用戶的帳號。
Samba服務器安裝
1)系統環境準備
系統平臺:CentOS release 6.6 (Final)
Samba版本:samba-3.6.23-51.el6.x86_64.rpm
Samba Server IP:192.168.0.150
關閉防火牆(CentOS 6默認使用iptables ,ip6tables)
關閉SELINUX ,SELINUX=disabled
[root@vm ~]# cat /etc/redhat-release # 查看系統版本 CentOS release 6.6 (Final) [root@vm ~]# vi /etc/sysconfig/selinux # 調整配置文件,關閉SELINUX ,設置SELINUX=disabled SELINUX=disabled # 設置該項爲disabled [root@vm ~]# ifconfig eth0 # 查看服務器ip地址 eth0 Link encap:Ethernet HWaddr 08:00:27:E5:00:9E inet addr:192.168.0.150 Bcast:192.168.0.255 Mask:255.255.255.0 [root@vm ~]# chkconfig iptables off # 關閉iptables 開機自啓動 [root@vm ~]# chkconfig ip6tables off [root@vm ~]# reboot # 重啓使selinux,iptables 設置生效
2)samba服務安裝
samba服務器安裝,使用yum安裝
[root@vm ~]# yum install samba samba-client -y # 安裝samba服務和samba-client軟件,依賴samba-common ,samba-winbind,samba-winbind-clients軟件包 ... Installed: samba.x86_64 0:3.6.23-51.el6 Dependency Installed: samba-common.x86_64 0:3.6.23-51.el6 samba-winbind.x86_64 0:3.6.23-51.el6 samba-winbind-clients.x86_64 0:3.6.23-51.el6 Complete!
samba服務依賴安裝的軟件包
[root@vm ~]# rpm -qa samba* # 查看與samba相關的軟件包名稱及相應版本 samba-3.6.23-51.el6.x86_64 # samba服務器軟件,主要提供samba服務器的守護程序smbd 和nmbd samba-winbind-clients-3.6.23-51.el6.x86_64 samba-winbind-3.6.23-51.el6.x86_64 samba-client-3.6.23-51.el6.x86_64 # samba客戶端軟件 samba-common-3.6.23-51.el6.x86_64 # samba公共軟件包,主要提供samba服務器的配置文件與pdbedit、smbpasswd、testparm等命令
samba軟件包相關配置文件
[root@vm ~]# rpm -ql samba # 查看samba軟件包生成的文件列表 /etc/pam.d/samba # samba服務器pam.d認證模塊 /etc/rc.d/init.d/nmb # nmb服務啓動腳本 /etc/rc.d/init.d/smb # smb服務啓動模塊 /etc/samba/smbusers # 映射用戶列表 /usr/sbin/nmbd # nmbd命令腳本文件 /usr/sbin/smbd # smbd命令腳本文件 /var/spool/samba # samba默認存儲目錄 [root@vm samba]# rpm -ql samba-common # 查看samba-common軟件包生成的文件列表 /etc/samba/smb.conf # samba配置文件 /usr/bin/pdbedit # pdbedit命令腳本,管理samba帳戶命令 /usr/bin/smbpasswd # smbpasswd命令腳本,smbpasswd來給系統用戶(真實用戶或者虛擬用戶)設置一個Samba密碼 /usr/bin/testparm # testparm命令腳本,測試smb.conf 核心配置文件語法是否正確
配置開機啓動
[root@vm samba]# chkconfig smb on # 配置samba服務器smb服務與nmb服務開機自啓動 [root@vm samba]# chkconfig nmb on [root@vm samba]# service smb start # 啓動smb服務 Starting SMB services: [ OK ] [root@vm samba]# service nmb start # 啓動nmb服務 Starting NMB services: [ OK ] [root@vm samba]# ss -tunlp | grep smb # 查看smb服務啓動端口 tcp LISTEN 0 50 *:445 *:* users:(("smbd",1311,28)) tcp LISTEN 0 50 :::445 :::* users:(("smbd",1311,26)) tcp LISTEN 0 50 *:139 *:* users:(("smbd",1311,29)) tcp LISTEN 0 50 :::139 :::* users:(("smbd",1311,27)) [root@vm samba]# ss -tunlp | grep nmb # 查看nmb服務啓動端口 udp UNCONN 0 0 192.168.0.255:137 *:* users:(("nmbd",1328,12)) udp UNCONN 0 0 192.168.0.150:137 *:* users:(("nmbd",1328,11)) udp UNCONN 0 0 *:137 *:* users:(("nmbd",1328,9)) udp UNCONN 0 0 192.168.0.255:138 *:* users:(("nmbd",1328,14)) udp UNCONN 0 0 192.168.0.150:138 *:* users:(("nmbd",1328,13)) udp UNCONN 0 0 *:138 *:* users:(("nmbd",1328,10))
3)smb.conf 配置腳本
Samba的主配置文件爲/etc/samba/smb.conf,主配置文件由兩部分構成:全局參數及共享定義。在配置相關參數時,格式爲 name = value
Samba Server的驗證方式,包含四種驗證方式。
share:用戶訪問Samba Server不須要提供用戶名和口令, 安全性能較低。該模式已被棄用
user:Samba Server共享目錄只能被受權的用戶訪問,由Samba Server負責檢查帳號和密碼的正確性。帳號和密碼要在本Samba Server中創建。
server:依靠其餘Windows NT/2000或Samba Server來驗證用戶的帳號和密碼,是一種代理驗證。該模式已被棄用
domain:域安全級別,使用主域控制器(PDC)來完成認證。
sam應該是security account manager(安全帳戶管理)的簡寫,目前用戶後端有三種模式:smbpasswd、tdbsam和ldapsam。
smbpasswd:舊的明文passdb後端。若是使用此passdb後端,某些Samba功能將不起做用。smbpasswd文件默認在/etc/samba目錄下,不過有時候要手工創建該文件。
tdbsam:基於TDB的密碼存儲後端。將TDB的路徑做爲可選參數(默認爲在/etc/samba 目錄中的passdb.tdb)。passdb.tdb用戶數據庫可使用smbpasswd –a 來創建Samba用戶,不過要創建的Samba用戶必須先是系統用戶; 也可以使用pdbedit命令來創建Samba帳戶
ldapsam:基於LDAP的passdb後端。 將LDAP URL做爲可選參數(默認爲ldap:// localhost)
Global Settings (全局參數):該設置都是與Samba服務總體運行環境有關的選項,它的設置項目是針對全部共享資源的。
[root@vm samba]# vi /etc/samba/smb.conf #======================= Global Settings ===================================== # 全局參數 [global] # ----------------------- Network Related Options ------------------------- # # workgroup = MYGROUP # 設定 Samba Server 所要加入的工做組或者域 server string = Samba Server Version %v # 設定 Samba Server 的註釋,能夠是任何字符串。宏%v表示顯示Samba的版本號。 ; netbios name = MYSERVER # 設置Samba Server的NetBIOS名稱 ; interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24 # 設置Samba Server監聽的網卡名稱或網卡的IP地址,參數之間使用空格隔開 ; hosts allow = 127. 192.168.12. 192.168.13. # 表示容許鏈接到Samba Server的客戶端,多個參數以空格隔開,能夠是ip地址或ip網段。 host deny = @itwish # 表示拒絕鏈接samba server的客戶端 ,@itwish 表明了itwish域內的全部計算機 max connections = 0 # 用來指定鏈接Samba Server的最大鏈接數目。若是超出鏈接數目,則新的鏈接請求將被拒絕。0表示不限制。 deadtime = 0 # 用來設置斷掉一個沒有打開任何文件的鏈接的時間。單位是分鐘,0表明Samba Server不自動切斷任何鏈接。 username map = /etc/samba/smbusers # 用來定義用戶名映射,好比能夠將root換成administrator、admin等。事先要在/etc/samba/smbusers文件中定義好。 time server = yes/no # nmbd將會告知windows的客戶端本身是否做爲smb的時間服務器,能夠用net time /yes /set 來同步時間 # --------------------------- Logging Options ----------------------------- log file = /var/log/samba/log.%m # 日誌文件路徑,宏%m表示客戶端主機的Netbios名 max log size = 50 # 每一個log日誌的最大容量爲50K ,單位是kb ,0表明不作限制 # ----------------------- Standalone Server Options ------------------------ # encrypt passwords = yes # 是否將認證密碼加密,默認已開啓加密功能。 security = user # 指定Samba Server的驗證方式,默認爲user map to guest = Bad User # 容許匿名用戶訪問,同時需把security = user 註釋掉 passdb backend = tdbsam # 定義用戶密碼後端的模式,默認爲tdbsam passdb backend = smbpasswd # 定義用戶密碼後端的模式爲smbpasswd smb passwd file = /etc/samba/smbpasswd # 用來定義samba用戶的密碼文件。smbpasswd文件若是沒有那就要手工新建。格式爲用戶名一行,密碼一行 # ----------------------- Domain Members Options ------------------------ # ; security = domain ; passdb backend = tdbsam ; realm = MY_REALM ; password server = <NT-Server-Name> # ----------------------- Domain Controller Options ------------------------ # ; security = user ; passdb backend = tdbsam ; domain master = yes # 設置Samba服務器是否要成爲網域主瀏覽器,網域主瀏覽器能夠管理跨子網域的瀏覽服務 ; domain logons = yes # 設置samba爲win98/95所登錄的域服務器 # ----------------------- Browser Control Options ---------------------------- # ; local master = yes # local master用來指定Samba Server是否試圖成爲本地網域主瀏覽器 ; os level = 33 # 設置samba服務器的os level ,該參數決定Samba Server是否有機會成爲本地網域的主瀏覽器 ; preferred master = yes # 設置Samba Server一開機就強迫進行主瀏覽器選舉,能夠提升Samba Server成爲本地網域主瀏覽器的機會 #----------------------------- Name Resolution ------------------------------- # Windows Internet Name Serving Support Section: # Note: Samba can be either a WINS Server, or a WINS Client, but NOT both ; wins support = yes # 設置samba服務器是否提供wins服務 ; wins server = w.x.y.z # 設置Samba Server是否使用別的wins服務器提供wins服務 ; wins proxy = yes # 設置Samba Server是否開啓wins代理服務 ; dns proxy = yes # 設置Samba Server是否開啓dns代理服務 # --------------------------- Printing Options ----------------------------- # load printers = yes # 設置是否在啓動Samba時就共享打印機 cups options = raw # 此參數在打印設置時使用
Share Definitions(共享定義) :該設置針對的是共享目錄個別的設置,只對當前的共享資源起做用。
#============================ Share Definitions ============================== [homes] comment = Home Directories # 是對該共享的描述,能夠是任意字符串 browseable = yes/no # 是否容許該目錄被顯示在系統資源中 path = /var/spool/samba # 指定共享目錄的路徑 writable = yes/no # 用來指定該共享路徑是否可寫,writeable = yes 功能等同於參數:read only = no guest ok = yes/no # 是否容許guest用戶訪問。guest ok = yes 功能等同於參數:public= yes write list = @nfs # 容許組@nfs 在共享目錄中建立、修改、刪除文件,固然與目錄的屬性也有相關性 admin users =itwish # 指定該共享目錄的管理者,多個用戶或者組中間用逗號隔開,若是要加入一個組就用「@+組名」表示 create mask = 0640 # 設置上傳文件的權限,爲了安全性,禁止文件執行權限 directory mask = 0775 # 設置建立目錄的權限 invalid users = itwish # 禁止訪問該共享的用戶 ; valid users = %S # 用來指定容許訪問該共享資源的用戶;%S表明當前服務名;多個用戶或者組中間用逗號隔開,若是要加入一個組就用「@+組名」表示 ; ; valid users = MYDOMAIN\%S
注:可使用testparm命令測試smb.conf配置是否正確;使用命令# testparm –v 能夠詳細的列出smb.conf支持的配置參數;另可使用命令# man smb.conf 查看相關參數及相關功能。
Samba服務器配置案例
1)案例,公司容許全部用戶匿名訪問共享文件/public ,容許匿名用戶上傳、刪除、修改文件
設定配置文件
[root@vm ~]# vi /etc/samba/smb.conf #======================= Global Settings ===================================== [global] # ----------------------- Network Related Options ------------------------- workgroup = WORKGROUP # 定義工做組爲WORKGROUP server string = Samba Server Version %v # 顯示信息Samba server 版本號 netbios name = SambaServer # 定義netbios 名稱爲SambaServer # --------------------------- Logging Options ----------------------------- log file = /var/log/samba/log.%m # 定義日誌路徑 max log size = 50 # 定義日誌最大爲50K # ----------------------- Standalone Server Options ------------------------ map to guest = Bad User # 定義容許匿名用戶訪問 #============================ Share Definitions ============================== [public] comment = Public Stuff # 定義共享目錄的註釋 path = /var/ftp/pub # 定義共享目錄的路徑 browseable = yes # 容許該目錄被顯示在系統資源中 writeable = yes # 容許共享目錄可寫 guest ok = yes # 容許guest帳戶訪問 create mask = 0644 # 設置上傳文件的權限,爲了安全性,不給予文件執行權限 directory mask = 0755 # 設置建立目錄的權限
驗證smb.conf 配置文件,並重啓smb和nmb服務
[root@vm samba]# testparm # 測試smb.conf語法的正確性 Load smb config files from /etc/samba/smb.conf rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384) Processing section "[public]" Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions [global] netbios name = SAMBASERVER server string = Samba Server Version %v map to guest = Bad User log file = /var/log/samba/log.%m max log size = 50 client signing = required [public] comment = Public Stuff path = /var/ftp/pub read only = No create mask = 0640 guest ok = Yes [root@vm samba]# service smb restart Shutting down SMB services: [ OK ] Starting SMB services: [ OK ] [root@vm samba]# service nmb restart Shutting down NMB services: [ OK ] Starting NMB services: [ OK ]
建立共享目錄,並分配nobody 匿名用戶權限
[root@vm ~]# mkdir /var/ftp/pub -p # 建立samba共享目錄 [root@vm ~]# chown nobody:nobody /var/ftp/pub/ # 爲共享目錄分配給匿名用戶(nobody)權限 [root@vm ~]# ll /var/ftp # 查看共享目錄權限755 total 4 drwxr-xr-x 2 nobody nobody 4096 Sep 7 22:25 pub
linux客戶端測試
[root@vm ~]# smbclient -N //localhost/public # 鏈接共享目錄而不提示輸入密碼 Anonymous login successful # 匿名用戶鏈接成功 Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.23-51.el6] smb: \> dir . D 0 Fri Sep 7 22:49:30 2018 .. D 0 Fri Sep 7 22:25:55 2018 ab D 0 Fri Sep 7 22:36:17 2018 cd.docx 0 Fri Sep 7 22:39:05 2018 c D 0 Fri Sep 7 22:39:33 2018 Notepad++.lnk 865 Sun Sep 2 17:31:08 2018 58545 blocks of size 262144. 55072 blocks available smb: \> mkdir d # 匿名用戶建立文件夾 smb: \> ls . D 0 Fri Sep 7 22:49:30 2018 .. D 0 Fri Sep 7 22:25:55 2018 ab D 0 Fri Sep 7 22:36:17 2018 cd.docx 0 Fri Sep 7 22:39:05 2018 d D 0 Fri Sep 7 23:12:34 2018 c D 0 Fri Sep 7 22:39:33 2018 Notepad++.lnk 865 Sun Sep 2 17:31:08 2018 58545 blocks of size 262144. 55072 blocks available smb: \> quit # 退出
windows 測試
2)案例,公司現有多個部門,因工做須要,將FM部的資料存放在samba服務器的/var/ftp/fm 目錄中集中管理,以便FM人員瀏覽。要求:一、該目錄/var/ftp/fm僅容許FM部員工訪問 ;二、僅容許FM部普通用戶對文件目錄/var/ftp/fm/upload 進行上傳、下載、刪除 及建立,且普通用戶僅能管理本身上傳或建立的文件;三、容許管理員fmadmin對文件目錄文件/var/ftp/fm/admin進行上傳、下載、刪除及建立,同時容許FM部門普通用戶下載資源;四、容許fmadmin用戶對目錄/var/ftp/fm 中的全部目錄文件進行管理
設定配置文件
[root@vm ~]# vi /etc/samba/smb.conf #======================= Global Settings ===================================== [global] # ----------------------- Network Related Options ------------------------- workgroup = WORKGROUP # 定義工做組爲WORKGROUP server string = Samba Server Version %v # 顯示信息Samba server 版本號 netbios name = SambaServer # 定義netbios 名稱爲SambaServer # --------------------------- Logging Options ----------------------------- log file = /var/log/samba/log.%m # 定義日誌路徑 max log size = 50 # 定義日誌最大爲50K # ----------------------- Standalone Server Options ------------------------ security = user # 指定Samba Server的驗證方式,默認爲user passdb backend = tdbsam # 定義用戶密碼後端的模式,默認爲tdbsam #============================ Share Definitions ============================== [fm] comment = FM Share # 定義共享目錄的註釋 path = /var/ftp/fm # 定義共享目錄的路徑 browseable = yes # 容許該目錄被顯示在系統資源中 valid users = @fmusers # 僅容許組@fmusers 中的用戶訪問 writeable = yes # 容許共享目錄可寫 guest ok = no # 不容許guest帳戶訪問 create mask = 0644 # 設置上傳文件的權限,爲了安全性,不給予文件執行權限 directory mask = 0755 # 設置建立目錄的權限
驗證smb.conf 配置文件,並重啓smb和nmb服務
[root@vm ~]# testparm Load smb config files from /etc/samba/smb.conf rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384) Processing section "[fm]" Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions # Global parameters [global] netbios name = SAMBASERVER server string = Samba Server Version %v security = USER log file = /var/log/samba/log.%m max log size = 50 idmap config * : backend = tdb cups options = raw [fm] comment = FM Share path = /var/ftp/fm read only = No valid users = @fmusers create mask = 0644 directory mask = 0755 [root@vm ~]# service smb restart Shutting down SMB services: [ OK ] Starting SMB services: [ OK ] [root@vm ~]# service nmb restart Shutting down NMB services: [ OK ] Starting NMB services: [ OK ]
建立fm部門普通用戶及管理員帳號;建立共享目錄,並分配給目錄相關權限
[root@vm ~]# groupadd -r fmusers # 建立fm部普通用戶分組 [root@vm ~]# useradd -g fmusers -s /sbin/nologin -r wangxs # 建立FM部門員工帳號,並劃分爲fmusers組 [root@vm ~]# useradd -g fmusers -s /sbin/nologin -r yanxs [root@vm ~]# useradd -g fmusers -s /sbin/nologin -r liangxs [root@vm ~]# useradd -g fmusers -s /sbin/nologin -r fmadmin # 建立FM部門管理帳號fmadmin,並劃分爲fmusers組 [root@vm ~]# mkdir /var/ftp/fm/{upload,admin} -p # 建立samba共享目錄,並分配權限 [root@vm ~]# chown fmadmin:fmusers /var/ftp/fm/ -R # 分配/var/ftp/fm 及其下目錄的屬主及屬組 [root@vm ~]# chmod 755 /var/ftp/fm/ -R # 分配fm目錄及其下的文件爲755權限 [root@vm fm]# chmod 775 /var/ftp/fm/upload/ # 爲目錄/var/ftp/fm/upload 給予775權限,容許內部全部用戶全部權限
配置用戶登陸密碼
[root@vm fm]# pdbedit -a fmadmin # 配置登錄samba帳號密碼 new password: retype new password: [root@vm fm]# pdbedit -a wangxs [root@vm fm]# pdbedit -a yanxs [root@vm fm]# pdbedit -a liangxs
linux客戶端測試
[root@vm fm]# smbclient //localhost/fm -U fmadmin # 使用fmadmin管理員登錄驗證 Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.2.10] smb: \> dir . D 0 Mon Sep 10 10:05:16 2018 .. D 0 Mon Sep 10 10:05:16 2018 admin D 0 Mon Sep 10 10:05:16 2018 upload D 0 Mon Sep 10 10:05:16 2018 smb: \> mkdir software # 建立目錄測試 smb: \> mkdir opensoft smb: \> dir . D 0 Mon Sep 10 10:22:13 2018 .. D 0 Mon Sep 10 10:05:16 2018 opensoft D 0 Mon Sep 10 10:22:13 2018 admin D 0 Mon Sep 10 10:05:16 2018 upload D 0 Mon Sep 10 10:05:16 2018 software D 0 Mon Sep 10 10:22:09 2018 smb: \> rmdir software # 刪除目錄測試 smb: \> dir . D 0 Mon Sep 10 10:23:54 2018 .. D 0 Mon Sep 10 10:05:16 2018 opensoft D 0 Mon Sep 10 10:22:13 2018 admin D 0 Mon Sep 10 10:05:16 2018 upload D 0 Mon Sep 10 10:05:16 2018 fm D 0 Mon Sep 10 10:20:45 2018 smb: \> put install.log # 上傳文件測試 putting file install.log as \install.log (21331.0 kb/s) (average 21332.0 kb/s) smb: \> dir . D 0 Mon Sep 10 10:24:24 2018 .. D 0 Mon Sep 10 10:05:16 2018 opensoft D 0 Mon Sep 10 10:22:13 2018 install.log N 43688 Mon Sep 10 10:24:24 2018 admin D 0 Mon Sep 10 10:05:16 2018 upload D 0 Mon Sep 10 10:05:16 2018 fm D 0 Mon Sep 10 10:20:45 2018 smb: \> get install.log # 下載文件測試 getting file \install.log of size 43688 as install.log (21331.0 KiloBytes/sec) (average 21332.0 KiloBytes/sec) smb: \> rename install.log a.txt # 修改文件名稱測試 smb: \> del a.txt # 刪除文件測試 smb: \> dir # 顯示目錄內容 . D 0 Mon Sep 10 10:26:01 2018 .. D 0 Mon Sep 10 10:05:16 2018 opensoft D 0 Mon Sep 10 10:22:13 2018 admin D 0 Mon Sep 10 10:05:16 2018 upload D 0 Mon Sep 10 10:05:16 2018 fm D 0 Mon Sep 10 10:20:45 2018 smb: \> cd admin\ # 切換到/var/ftp/fm/admin 目錄中建立文件 smb: \admin\> ls . D 0 Mon Sep 10 10:05:16 2018 .. D 0 Mon Sep 10 10:26:01 2018 405460592 blocks of size 1024. 313394736 blocks available smb: \admin\> put install.log putting file install.log as \admin\install.log (42659.9 kb/s) (average 28442.7 kb/s) smb: \admin\> put a.sh # 上傳a.sh文件 putting file a.sh as \admin\a.sh (11.7 kb/s) (average 21335.0 kb/s) smb: \admin\> put random.sh # 上傳random.sh 文件 putting file random.sh as \admin\random.sh (47.8 kb/s) (average 17077.5 kb/s) smb: \admin\> mkdir test # 建立文件夾 test smb: \admin\> dir . D 0 Mon Sep 10 10:28:20 2018 .. D 0 Mon Sep 10 10:26:01 2018 install.log N 43688 Mon Sep 10 10:27:58 2018 random.sh N 49 Mon Sep 10 10:28:08 2018 test D 0 Mon Sep 10 10:28:20 2018 a.sh N 12 Mon Sep 10 10:28:05 2018 [root@vm ~]# smbclient //localhost/fm -U wangxs #使用普通用戶wangxs登錄進行測試 Enter wangxs's password: Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.2.10] smb: \> dir # 顯示目錄下文件 . D 0 Mon Sep 10 10:26:01 2018 .. D 0 Mon Sep 10 10:05:16 2018 opensoft D 0 Mon Sep 10 10:22:13 2018 admin D 0 Mon Sep 10 10:28:20 2018 upload D 0 Mon Sep 10 10:05:16 2018 fm D 0 Mon Sep 10 10:20:45 2018 405460592 blocks of size 1024. 313394672 blocks available smb: \> mkdir fmuser # 拒絕在/var/ftp/fm目錄中建立目錄 NT_STATUS_ACCESS_DENIED making remote directory \fmuser smb: \> put install.log # 拒絕在/var/ftp/fm目錄中建立文件 NT_STATUS_ACCESS_DENIED opening remote file \install.log smb: \> cd upload\ # 在/var/ftp/fm/upload 文件中測試建立、上傳、刪除、修改權限 smb: \upload\> mkdir wangxs # 容許建立目錄 smb: \upload\> put install.log # 容許上傳文件 putting file install.log as \upload\install.log (42659.9 kb/s) (average 42664.1 kb/s) mb: \upload\> get install.log # 下載install.log getting file \upload\install.log of size 43688 as install.log (42659.9 KiloBytes/sec) (average 42664.1 KiloBytes/sec) smb: \upload\> rename install.log a.txt # 把install.log更名爲a.txt smb: \upload\> del a.txt # 刪除a.txt smb: \upload\> cd .. smb: \> cd admin\ # 切換進入/var/ftp/fm/admin 目錄 smb: \admin\> ls # 顯示目錄文件 . D 0 Mon Sep 10 10:28:20 2018 .. D 0 Mon Sep 10 10:26:01 2018 install.log N 43688 Mon Sep 10 10:27:58 2018 random.sh N 49 Mon Sep 10 10:28:08 2018 test D 0 Mon Sep 10 10:28:20 2018 a.sh N 12 Mon Sep 10 10:28:05 2018 405460592 blocks of size 1024. 313394668 blocks available smb: \admin\> get install.log # 測試/var/ftp/fm/admin目錄的文件下載 getting file \admin\install.log of size 43688 as install.log (42659.9 KiloBytes/sec) (average 42664.1 KiloBytes/sec) smb: \admin\> del install.log # 拒絕普通用戶刪除/var/ftp/fm/admin 目錄中的文件 NT_STATUS_ACCESS_DENIED deleting remote file \admin\install.log
綜上,兩種不一樣的使用場景 ,經過不一樣的配置參數分別實現。
Samba服務器 Web管理工具SWAT
SWAT(Samba WEB Administration Tool) 是經過瀏覽器對 Samba 進行管理的工具之一。經過 SWAT,能夠在 Samba 容許訪問範圍內的客戶端,用瀏覽器對服務端的 Samba 進行控制。swat工具嵌套在xinetd超級守護進程中,要經過啓用xinetd進程來啓用swat。所以要先安裝xinetd工具包,而後安裝swat工具包。
安裝samba-swat軟件包
[root@vm ~]# yum install samba-3.6.23-41.el6.x86_64.rpm # 安裝samba-swat 軟件包 [root@vm ~]# vi /etc/xinetd.d/swat # 調整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 = 0.0.0.0 # 表示容許任意ip的主機訪問 user = root server = /usr/sbin/swat log_on_failure += USERID disable = no # 把該項改成no ,表明啓用swat 功能 } [root@vm ~]# service xinetd restart # 經過重啓xinetd 服務來啓動swat 功能 Stopping xinetd: [ OK ] Starting xinetd: [ OK ]
訪問 swat
在服務端啓動 swat後,咱們就能夠經過 swat容許範圍內的客戶機的瀏覽器中,經過 http://服務器的內網IP:901 來訪問服務端的 swat了,輸入 root用戶的用戶名及密碼進入 swat的管理首頁,以下所示:
swat管理中心的首頁
經過swat配置samba,在swat頁面咱們能夠看到有8個選項,每一個選項能夠配置samba的不一樣功能。
HOME:Samba相關程序及文件說明。
GLOBALS:設置Samba的全局參數。即smb.conf文件的[global]。
SHARES:設置Samba的共享參數。配置共享文件目錄及其相關屬性配置。
PRINTERS:設置Samba的打印參數。
WIZARD:Samba配置嚮導。
STATUS:查看和設置Samba的服務情況。
VIEW:查看Samba的文本配置文件,即smb.conf。
PASSWORD:設置Samba用戶,能夠修改密碼,新建刪除用戶。
至此,Samba服務器的全部配置完成。
轉載請註明出處:https://blog.51cto.com/itwish