CentOS6 下Samba服務器的安裝與配置

原地址:http://www.cnblogs.com/mchina/archive/2012/12/18/2816717.html

一、簡介

  Samba是一個能讓Linux系統應用Microsoft網絡通訊協議的軟件,而SMB是Server Message Block的縮寫,即為服務器消息塊 ,SMB主要是作為Microsoft的網絡通訊協議,后來Samba將SMB通信協議應用到了Linux系統上,就形成了現在的Samba軟件。后來微軟又把 SMB 改名為 CIFS(Common Internet File System),即公共 Internet 文件系統,并且加入了許多新的功能,這樣一來,使得Samba具有了更強大的功能。

  Samba最大的功能就是可以用于Linux與windows系統直接的文件共享和打印共享,Samba既可以用于windows與Linux之間的文件共享,也可以用于Linux與Linux之間的資源共享,由于NFS(網絡文件系統)可以很好的完成Linux與Linux之間的數據共享,因而 Samba較多的用在了Linux與windows之間的數據共享上面。

  SMB是基于客戶機/服務器型的協議,因而一臺Samba服務器既可以充當文件共享服務器,也可以充當一個Samba的客戶端,例如,一臺在Linux 下已經架設好的Samba服務器,windows客戶端就可以通過SMB協議共享Samba服務器上的資源文件,同時,Samba服務器也可以訪問網絡中 其它windows系統或者Linux系統共享出來的文件。
Samba在windows下使用的是NetBIOS協議,如果你要使用Linux下共享出來的文件,請確認你的windows系統下是否安裝了NetBIOS協議。

  組成Samba運行的有兩個服務,一個是SMB,另一個是NMB;SMB是Samba 的核心啟動服務,主要負責建立 Linux Samba服務器與Samba客戶機之間的對話, 驗證用戶身份并提供對文件和打印系統的訪問,只有SMB服務啟動,才能實現文件的共享,監聽139 TCP端口;而NMB服務是負責解析用的,類似與DNS實現的功能,NMB可以把Linux系統共享的工作組名稱與其IP對應起來,如果NMB服務沒有啟動,就只能通過IP來訪問共享文件,監聽137和138 UDP端口。

  例如,某臺Samba服務器的IP地址為10.0.0.163,對應的工作組名稱為davidsamba,那么在Windows的IE瀏覽器輸入下面兩條指令都可以訪問共享文件。其實這就是Windows下查看Linux Samba服務器共享文件的方法。
  \\10.0.0.163\共享目錄名稱
  \\davidsamba\共享目錄名稱

  Samba服務器可實現如下功能:WINS和DNS服務; 網絡瀏覽服務; Linux和Windows域之間的認證和授權; UNICODE字符集和域名映射;滿足CIFS協議的UNIX共享等。

二、系統環境

系統平臺:CentOS release 6.3 (Final)

Samba版本:samba-3.5.10-125.el6.x86_64

Samba Server IP:10.0.0.163

防火墻已關閉/iptables: Firewall is not running.

SELINUX=disabled

三、安裝Samba服務

1、在可以聯網的機器上使用yum工具安裝,如果未聯網,則掛載系統光盤進行安裝。

# yum install samba samba-client samba-swat

有依賴關系的包samba-common、samba-winbind-clients、libsmbclient將自動安裝上去。

2、查看安裝狀況

3、安裝包說明

samba-common-3.5.10-125.el6.x86_64?????????????? //主要提供samba服務器的設置文件與設置文件語法檢驗程序testparm
samba-client-3.5.10-125.el6.x86_64??????????????????? //客戶端軟件,主要提供linux主機作為客戶端時,所需要的工具指令集
samba-swat-3.5.10-125.el6.x86_64??????????????????? //基于https協議的samba服務器web配置界面
samba-3.5.10-125.el6.x86_64??????????????????????????? //服務器端軟件,主要提供samba服務器的守護程序,共享文檔,日志的輪替,開機默認選項

Samba服務器安裝完畢,會生成配置文件目錄/etc/samba和其它一些samba可執行命令工具,/etc/samba/smb.conf是samba的核心配置文件,/etc/init.d/smb是samba的啟動/關閉文件。

4、啟動Samba服務器

可以通過/etc/init.d/smb start/stop/restart來啟動、關閉、重啟Samba服務,啟動SMB服務如下所示:

5、查看samba的服務啟動情況

# service smb status

6、設置開機自啟動

# chkconfig --level 35 smb on???????????? //在3、5級別上自動運行samba服務

四、配置Samba服務

Samba的主配置文件為/etc/samba/smb.conf

主配置文件由兩部分構成

  • Global Settings (55-245行)

  該設置都是與Samba服務整體運行環境有關的選項,它的設置項目是針對所有共享資源的。

  • Share Definitions (246-尾行)

  該設置針對的是共享目錄個別的設置,只對當前的共享資源起作用。

全局參數:

#==================Global Settings ===================
[global]

config file = /usr/local/samba/lib/smb.conf.%m
說明:config file可以讓你使用另一個配置文件來覆蓋缺省的配置文件。如果文件不存在,則該項無效。這個參數很有用,可以使得samba配置更靈活,可以讓一臺 samba服務器模擬多臺不同配置的服務器。比如,你想讓PC1(主機名)這臺電腦在訪問Samba Server時使用它自己的配置文件,那么先在/etc/samba/host/下為PC1配置一個名為smb.conf.pc1的文件,然后在 smb.conf中加入:config file = /etc/samba/host/smb.conf.%m。這樣當PC1請求連接Samba Server時,smb.conf.%m就被替換成smb.conf.pc1。這樣,對于PC1來說,它所使用的Samba服務就是由 smb.conf.pc1定義的,而其他機器訪問Samba Server則還是應用smb.conf。

workgroup = WORKGROUP
說明:設定 Samba Server 所要加入的工作組或者域。

server string = Samba Server Version %v
說明:設定 Samba Server 的注釋,可以是任何字符串,也可以不填。宏%v表示顯示Samba的版本號。

netbios name = smbserver
說明:設置Samba Server的NetBIOS名稱。如果不填,則默認會使用該服務器的DNS名稱的第一部分。netbios name和workgroup名字不要設置成一樣了。

interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
說明:設置Samba Server監聽哪些網卡,可以寫網卡名,也可以寫該網卡的IP地址。

hosts allow = 127. 192.168.1. 192.168.10.1
說明:表示允許連接到Samba Server的客戶端,多個參數以空格隔開。可以用一個IP表示,也可以用一個網段表示。hosts deny 與hosts allow 剛好相反。
例如:hosts allow=172.17.2.EXCEPT172.17.2.50
表示容許來自172.17.2.*的主機連接,但排除172.17.2.50
hosts allow=172.17.2.0/255.255.0.0
表示容許來自172.17.2.0/255.255.0.0子網中的所有主機連接
hosts allow=M1,M2
表示容許來自M1和M2兩臺計算機連接
hosts allow=@pega
表示容許來自pega網域的所有計算機連接

max connections = 0
說明:max connections用來指定連接Samba Server的最大連接數目。如果超出連接數目,則新的連接請求將被拒絕。0表示不限制。

deadtime = 0
說明:deadtime用來設置斷掉一個沒有打開任何文件的連接的時間。單位是分鐘,0代表Samba Server不自動切斷任何連接。

time server = yes/no
說明:time server用來設置讓nmdb成為windows客戶端的時間服務器。

log file = /var/log/samba/log.%m
說明:設置Samba Server日志文件的存儲位置以及日志文件名稱。在文件名后加個宏%m(主機名),表示對每臺訪問Samba Server的機器都單獨記錄一個日志文件。如果pc1、pc2訪問過Samba Server,就會在/var/log/samba目錄下留下log.pc1和log.pc2兩個日志文件。

max log size = 50
說明:設置Samba Server日志文件的最大容量,單位為kB,0代表不限制。

security = user
說明:設置用戶訪問Samba Server的驗證方式,一共有四種驗證方式。
1. share:用戶訪問Samba Server不需要提供用戶名和口令, 安全性能較低。
2. user:Samba Server共享目錄只能被授權的用戶訪問,由Samba Server負責檢查賬號和密碼的正確性。賬號和密碼要在本Samba Server中建立。
3. server:依靠其他Windows NT/2000或Samba Server來驗證用戶的賬號和密碼,是一種代理驗證。此種安全模式下,系統管理員可以把所有的Windows用戶和口令集中到一個NT系統上,使用 Windows NT進行Samba認證, 遠程服務器可以自動認證全部用戶和口令,如果認證失敗,Samba將使用用戶級安全模式作為替代的方式。
4. domain:域安全級別,使用主域控制器(PDC)來完成認證。

passdb backend = tdbsam
說明:passdb backend就是用戶后臺的意思。目前有三種后臺:smbpasswd、tdbsam和ldapsam。sam應該是security account manager(安全賬戶管理)的簡寫。
1.smbpasswd:該方式是使用smb自己的工具smbpasswd來給系統用戶(真實用戶或者虛擬用戶)設置一個Samba密碼,客戶端就用這個密碼來訪問Samba的資源。smbpasswd文件默認在/etc/samba目錄下,不過有時候要手工建立該文件。
2.tdbsam: 該方式則是使用一個數據庫文件來建立用戶數據庫。數據庫文件叫passdb.tdb,默認在/etc/samba目錄下。passdb.tdb用戶數據庫 可以使用smbpasswd –a來建立Samba用戶,不過要建立的Samba用戶必須先是系統用戶。我們也可以使用pdbedit命令來建立Samba賬戶。pdbedit命令的 參數很多,我們列出幾個主要的。
  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用戶的賬號。
3.ldapsam:該方式則是基于LDAP的賬戶管理方式來驗證用戶。首先要建立LDAP服務,然后設置“passdb backend = ldapsam:ldap://LDAP Server”

encrypt passwords = yes/no
說明:是否將認證密碼加密。因為現在windows操作系統都是使用加密密碼,所以一般要開啟此項。不過配置文件默認已開啟。

smb passwd file = /etc/samba/smbpasswd
說明:用來定義samba用戶的密碼文件。smbpasswd文件如果沒有那就要手工新建。

username map = /etc/samba/smbusers
說明:用來定義用戶名映射,比如可以將root換成administrator、admin等。不過要事先在smbusers文件中定義好。比如:root = administrator admin,這樣就可以用administrator或admin這兩個用戶來代替root登陸Samba Server,更貼近windows用戶的習慣。

guest account = nobody
說明:用來設置guest用戶名。

socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
說明:用來設置服務器和客戶端之間會話的Socket選項,可以優化傳輸速度。

domain master = yes/no
說明:設置Samba服務器是否要成為網域主瀏覽器,網域主瀏覽器可以管理跨子網域的瀏覽服務。

local master = yes/no
說明:local master用來指定Samba Server是否試圖成為本地網域主瀏覽器。如果設為no,則永遠不會成為本地網域主瀏覽器。但是即使設置為yes,也不等于該Samba Server就能成為主瀏覽器,還需要參加選舉。

preferred master = yes/no
說明:設置Samba Server一開機就強迫進行主瀏覽器選舉,可以提高Samba Server成為本地網域主瀏覽器的機會。如果該參數指定為yes時,最好把domain master也指定為yes。使用該參數時要注意:如果在本Samba Server所在的子網有其他的機器(不論是windows NT還是其他Samba Server)也指定為首要主瀏覽器時,那么這些機器將會因為爭奪主瀏覽器而在網絡上大發廣播,影響網絡性能。
如果同一個區域內有多臺Samba Server,將上面三個參數設定在一臺即可。

os level = 200
說明:設置samba服務器的os level。該參數決定Samba Server是否有機會成為本地網域的主瀏覽器。os level從0到255,winNT的os level是32,win95/98的os level是1。Windows 2000的os level是64。如果設置為0,則意味著Samba Server將失去瀏覽選擇。如果想讓Samba Server成為PDC,那么將它的os level值設大些。

domain logons = yes/no
說明:設置Samba Server是否要做為本地域控制器。主域控制器和備份域控制器都需要開啟此項。

logon?script = %u.bat
說明:當使用者用windows客戶端登陸,那么Samba將提供一個登陸檔。如果設置成%u.bat,那么就要為每個用戶提供一個登陸檔。如果人比較多, 那就比較麻煩。可以設置成一個具體的文件名,比如start.bat,那么用戶登陸后都會去執行start.bat,而不用為每個用戶設定一個登陸檔了。 這個文件要放置在[netlogon]的path設置的目錄路徑下。

wins support = yes/no
說明:設置samba服務器是否提供wins服務。

wins server = wins服務器IP地址
說明:設置Samba Server是否使用別的wins服務器提供wins服務。

wins proxy = yes/no
說明:設置Samba Server是否開啟wins代理服務。

dns proxy = yes/no
說明:設置Samba Server是否開啟dns代理服務。

load printers = yes/no
說明:設置是否在啟動Samba時就共享打印機。

printcap name = cups
說明:設置共享打印機的配置文件。

printing = cups
說明:設置Samba共享打印機的類型。現在支持的打印系統有:bsd, sysv, plp, lprng, aix, hpux, qnx
?
共享參數:
#================== Share Definitions ==================
[共享名]

comment = 任意字符串
說明:comment是對該共享的描述,可以是任意字符串。

path = 共享目錄路徑
說 明:path用來指定共享目錄的路徑。可以用%u、%m這樣的宏來代替路徑里的unix用戶和客戶機的Netbios名,用宏表示主要用于[homes] 共享域。例如:如果我們不打算用home段做為客戶的共享,而是在/home/share/下為每個Linux用戶以他的用戶名建個目錄,作為他的共享目 錄,這樣path就可以寫成:path = /home/share/%u; 。用戶在連接到這共享時具體的路徑會被他的用戶名代替,要注意這個用戶名路徑一定要存在,否則,客戶機在訪問時會找不到網絡路徑。同樣,如果我們不是以用 戶來劃分目錄,而是以客戶機來劃分目錄,為網絡上每臺可以訪問samba的機器都各自建個以它的netbios名的路徑,作為不同機器的共享資源,就可以 這樣寫:path = /home/share/%m 。

browseable = yes/no
說明:browseable用來指定該共享是否可以瀏覽。

writable = yes/no
說明:writable用來指定該共享路徑是否可寫。

available = yes/no
說明:available用來指定該共享資源是否可用。

admin users = 該共享的管理者
說明:admin users用來指定該共享的管理員(對該共享具有完全控制權限)。在samba 3.0中,如果用戶驗證方式設置成“security=share”時,此項無效。
例如:admin users =david,sandy(多個用戶中間用逗號隔開)。

valid users = 允許訪問該共享的用戶
說明:valid users用來指定允許訪問該共享資源的用戶。
例如:valid users = david,@dave,@tech(多個用戶或者組中間用逗號隔開,如果要加入一個組就用“@組名”表示。)

invalid users = 禁止訪問該共享的用戶
說明:invalid users用來指定不允許訪問該共享資源的用戶。
例如:invalid users = root,@bob(多個用戶或者組中間用逗號隔開。)

write list = 允許寫入該共享的用戶
說明:write list用來指定可以在該共享下寫入文件的用戶。
例如:write list = david,@dave

public = yes/no
說明:public用來指定該共享是否允許guest賬戶訪問。

guest ok = yes/no
說明:意義同“public”。
?
幾個特殊共享:
[homes]
comment = Home Directories
browseable = no
writable = yes
valid users = %S
; valid users = MYDOMAIN\%S
?
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes
?
[netlogon]
comment = Network Logon Service
path = /var/lib/samba/netlogon
guest ok = yes
writable = no
share modes = no
?
[Profiles]
path = /var/lib/samba/profiles
browseable = no
guest ok = yes

Samba安裝好后,使用testparm命令可以測試smb.conf配置是否正確。使用testparm –v命令可以詳細的列出smb.conf支持的配置參數。

默認的smb.conf有很多個選項和內容,比較繁瑣,這里我們按照案例來講解配置選項,先備份一下自己的smb.conf文件,然后重新建立一個smb.conf。

# cp -p /etc/samba/smb.conf??? /etc/samba/smb.conf.orig

案例一、公司現有一個工作組workgroup,需要添加samba服務器作為文件服務器,并發布共享目錄/share,共享名為public,此共享目錄允許所有員工訪問。

a.?修改samba的主配置文件如下:

復制代碼
#======================= Global Settings =====================================[global]                                                  //該設置與Samba服務整體運行環境有關,它的設置項目針對所有共享資源       # ----------------------- Network Related Options -------------------------
#
# workgroup = NT-Domain-Name or Workgroup-Name, eg: MIDEARTH
#
# server string is the equivalent of the NT Description field
#
# netbios name can be used to specify a server name not tied to the hostnameworkgroup = WORKGROUP                             //定義工作組,也就是windows中的工作組概念server string = David Samba Server Version %v     //定義Samba服務器的簡要說明netbios name = DavidSamba                         //定義windows中顯示出來的計算機名稱# --------------------------- Logging Options -----------------------------
#
# Log File let you specify where to put logs and how to split them up.log file = /var/log/samba/log.%m                  //定義Samba用戶的日志文件,%m代表客戶端主機名//Samba服務器會在指定的目錄中為每個登陸主機建立不同的日志文件
# ----------------------- Standalone Server Options ------------------------
#
# Scurity can be set to user, share(deprecated) or server(deprecated)security = share                                  //共享級別,用戶不需要賬號和密碼即可訪問#============================ Share Definitions ==============================[public]                                                  //設置針對的是共享目錄個別的設置,只對當前的共享資源起作用comment = Public Stuff                            //對共享目錄的說明文件,自己可以定義說明信息path = /share                                     //用來指定共享的目錄,必選項public = yes                                      //所有人可查看,等效于guest ok = yes
復制代碼

b. 建立共享目錄

上面設置了共享目錄為/share,下面就需要建立/share目錄:

由于要設置匿名用戶可以下載或上傳共享文件,所以要給/share目錄授權為nobody權限。

c. 重啟smb服務

d. 測試smb.conf配置是否正確

e. 訪問Samba服務器的共享文件

  • 在Linux下訪問Samba服務器的共享文件

  • 在windows下訪問Samba服務器的共享文件

案例二、公司現有多個部門,因工作需要,將TS部的資料存放在samba服務器的/ts 目錄中集中管理,以便TS人員瀏覽,并且該目錄只允許TS部員工訪問。

a. 添加TS部組和用戶

建立用戶的同時加入到相應的組中的方式:useradd -g 組名 用戶名

b. 在根目錄下建立/ts 文件夾

c. 將剛才建立的兩個帳戶添加到samba的賬戶中

d. 修改主配置文件如下:

復制代碼
#======================= Global Settings =====================================[global]# ----------------------- Network Related Options -------------------------
#
# workgroup = NT-Domain-Name or Workgroup-Name, eg: MIDEARTH
#
# server string is the equivalent of the NT Description field
#
# netbios name can be used to specify a server name not tied to the hostnameworkgroup = WORKGROUPserver string = David Samba Server Version %vnetbios name = DavidSamba# --------------------------- Logging Options -----------------------------
#
# Log File let you specify where to put logs and how to split them up.log file = /var/log/samba/log.%m# ----------------------- Standalone Server Options ------------------------
#
# Scurity can be set to user, share(deprecated) or server(deprecated)security = user                                   //用戶級別,由提供服務的Samba服務器負責檢查賬戶和密碼#============================ Share Definitions ==============================[homes]                                                   //設置用戶宿主目錄comment = Home Directoriesbrowseable = nowritable = yes
;       valid users = %S
;       valid users = MYDOMAIN\%S[public]comment = Public Stuffpath = /sharepublic = yes[ts]                                                      //ts 組目錄,只允許ts組成員訪問comment = TSpath = /tsvalid users = @ts
復制代碼

e. 重新加載配置

f. 到windows客戶端驗證,訪問\\10.0.0.163,提示輸入用戶名和密碼,在此輸入sandy驗證,如下圖:

g. 訪問成功,可以看到公共的public目錄,用戶sandy的宿主目錄,和其有權限訪問的ts目錄

h. 進入ts目錄,有剛才創建的newyork.city文件

案例三、實現不同的用戶訪問同一個共享目錄具有不同的權限,便于管理和維護。基本上能滿足一些企業用戶的需求。(整理自網絡)

a. 需求

1. 某公司有5個大部門,分別為:人事行政部(HR & Admin Dept)、財務部(Financial Management Dept)、技術支持部(Technical Support Dept)、項目部(Project Dept)、客服部(Customer Service Dept)。
2. 各部門的文件夾只允許本部門員工有權訪問;各部門之間交流性質的文件放到公用文件夾中。
3. 每個部門都有一個管理本部門文件夾的管理員賬號和一個只能新建和查看文件的普通用戶權限的賬號。
4. 公用文件夾中分為存放工具的文件夾和存放各部門共享文件的文件夾。
5. 對于各部門自己的文件夾,各部門管理員具有完全控制權限,而各部門普通用戶可以在該部門文件夾下新建文件及文件夾,并且對于自己新建的文件及文件夾有完全控制權限,對于管理員新建及上傳的文件和文件夾只能訪問,不能更改和刪除。不是本部門用戶不能訪問本部門文件夾。
6. 對于公用文件夾中的各部門共享文件夾,各部門管理員具有完全控制權限,而各部門普通用戶可以在該部門文件夾下新建文件及文件夾,并且對于自己新建的文件及文件夾有完全控制權限,對于管理員新建及上傳的文件和文件夾只能訪問,不能更改和刪除。本部門用戶(包括管理員和普通用戶)在訪問其他部門共享文件夾時,只能查看不能修改刪除新建。對于存放工具的文件夾,只有管理員有權限,其他用戶只能訪問。

b. 規劃

根據公司需求情況,現做出如下規劃:
1. 在系統分區時單獨分一個Company的區,在該區下有以下幾個文件夾:HR、 FM、TS、PRO、CS和Share。在Share下又有以下幾個文件夾:HR、FM、TS、PRO、CS和Tools。
2. 各部門對應的文件夾由各部門自己管理,Tools文件夾由管理員維護。
3. HR管理員賬號:hradmin;普通用戶賬號:hruser。
?? FM管理員賬號:fmadmin;普通用戶賬號:fmuser。
?? TS管理員賬號:tsadmin;普通用戶賬號:tsuser。
?? PRO管理員賬號:proadmin;普通用戶賬號:prouser。
?? CS管理員賬號:csadmin;普通用戶賬號:csuser。
?? Tools管理員賬號:admin。

文件夾之間的關系見下圖:

c. 新建用戶

使用useradd命令新建系統賬戶,然后再使用smbpasswd –a建立SMB賬戶。

復制代碼
[root@TS-DEV ~]# useradd -s /sbin/nologin hradmin          
[root@TS-DEV ~]# useradd -g hradmin -s /sbin/nologin hruser
[root@TS-DEV ~]# useradd -s /sbin/nologin fmadmin            
[root@TS-DEV ~]# useradd -g fmadmin -s /sbin/nologin fmuser     
[root@TS-DEV ~]# useradd -s /sbin/nologin tsadmin
[root@TS-DEV ~]# useradd -g tsadmin -s /sbin/nologin tsuser
[root@TS-DEV ~]# useradd -s /sbin/nologin proadmin         
[root@TS-DEV ~]# useradd -g proadmin -s /sbin/nologin prouser 
[root@TS-DEV ~]# useradd -s /sbin/nologin csadmin
[root@TS-DEV ~]# useradd -g csadmin -s /sbin/nologin csuser
[root@TS-DEV ~]# useradd -s /sbin/nologin admin            
[root@TS-DEV ~]# [root@TS-DEV ~]# smbpasswd -a hradmin
New SMB password:
Retype new SMB password:
Added user fmuser.
[root@TS-DEV ~]# smbpasswd -a hruser
[root@TS-DEV ~]# smbpasswd -a fmadmin
[root@TS-DEV ~]# smbpasswd -a fmuser
[root@TS-DEV ~]# smbpasswd -a tsadmin
[root@TS-DEV ~]# smbpasswd -a tsuser
[root@TS-DEV ~]# smbpasswd -a proadmin
[root@TS-DEV ~]# smbpasswd -a prouser
[root@TS-DEV ~]# smbpasswd -a csadmin 
[root@TS-DEV ~]# smbpasswd -a csuser
[root@TS-DEV ~]# smbpasswd -a admin    
[root@TS-DEV ~]# 
復制代碼

d. 新建目錄

e. 更改目錄屬性

復制代碼
[root@TS-DEV Company]# chown hradmin.hradmin HR
[root@TS-DEV Company]# chown fmadmin.fmadmin FM
[root@TS-DEV Company]# chown tsadmin.tsadmin TS    
[root@TS-DEV Company]# chown proadmin.proadmin PRO    
[root@TS-DEV Company]# chown csadmin.csadmin CS      
[root@TS-DEV Company]# chown admin.admin Share  
復制代碼

[root@TS-DEV Company]# cd Share/
[root@TS-DEV Share]# chown hradmin.hradmin HR && chown fmadmin.fmadmin FM && chown tsadmin.tsadmin TS && chown proadmin.proadmin PRO && chown csadmin.csadmin CS && chown admin.admin Tools
[root@TS-DEV Share]# chmod 1775 HR FM TS PRO CS

f. 配置samba如下:

復制代碼
#======================= Global Settings =====================================[global]# ----------------------- Network Related Options -------------------------
#
# workgroup = NT-Domain-Name or Workgroup-Name, eg: MIDEARTH
#
# server string is the equivalent of the NT Description field
#
# netbios name can be used to specify a server name not tied to the hostnameworkgroup = WORKGROUPserver string = David Samba Server Version %vnetbios name = DavidSamba# --------------------------- Logging Options -----------------------------
#
# Log File let you specify where to put logs and how to split them up.log file = /var/log/samba/log.%mmax log size = 50# ----------------------- Standalone Server Options ------------------------
#
# Scurity can be set to user, share(deprecated) or server(deprecated)security = userpassdb backend = tdbsam#============================ Share Definitions ==============================[HR]comment = This is a directory of HR.path = /Company/HR/public = noadmin users = hradminvalid users = @hradminwritable = yescreate mask = 0750directory mask = 0750[FM]comment = This is a directory of FM.path = /Company/FM/public = noadmin users = fmadminvalid users = @fmadminwritable = yescreate mask = 0750directory mask = 0750[TS]comment = This is a directory of TS.path = /Company/TS/public = noadmin users = tsadminvalid users = @tsadminwritable = yescreate mask = 0750directory mask = 0750[PRO]comment = This is a PRO directory.path = /Company/PRO/public = noadmin users = proadminvalid users = @proadminwritable = yescreate mask = 0750directory mask = 0750[CS]comment = This is a directory of CS.path = /Company/CS/public = noadmin users = csadminvalid users = @csadminwritable = yescreate mask = 0750directory mask = 0750[Share]comment = This is a share directory.path = /Company/Share/public = novalid users = admin,@hradmin,@fmadmin,@tsadmin,@proadmin,@csadminwritable = yescreate mask = 0755directory mask = 0755
復制代碼

g. 測試

以 hradmin登錄系統

試圖訪問ts部門文件夾,要求輸入用戶名及密碼

試圖在\\10.0.0.163\Share\TS下新建文件

在自己部門所屬文件夾下新建成功

其他測試自行完成。

配置完畢。

五、將共享目錄映射成Windows的驅動器

將Samba共享的public目錄,映射成 Windows 的一個驅動器盤符:

a. 右擊“計算機”-->“映射網絡驅動器”

b. 在文件夾欄輸入共享地址及路徑,點擊“完成”輸入用戶名和密碼

c. 映射完畢后,打開資源管理器可以看到映射的共享目錄

Tips:

在windows下通過“\\ip地址”的方式訪問其它文件資源時,一般第一次需要輸入密碼,以后就無需輸入密碼直接登陸了,那么如果我們要切換到其它Samba用戶怎么辦呢?可以在windows下執行如下指令實現:
首先通過開始-->運行-->cmd 輸入:“net use”命令查看現有的連接,然后執行“net use \\Samba服務器IP地址或者netbios名稱\ipc$? /del”,刪除Samba服務器已經建立的連接。或者執行“net use * /del”將現在所有的連接全部刪除。最后,再次執行“\\ip地址”時,就可以切換用戶了。

六、Linux客戶端訪問操作

上面介紹了windows客戶端訪問Samba服務器的操作,那么在Linux作為客戶端時,查看其它Linux Samba服務器共享的文件時,應該如何操作呢?

這就要用到smbclient這個工具,系統默認自帶了這個命令,Smbclient常見用法介紹如下:

1、查看Samba服務器的共享資料

# smbclient? –L? //Samba服務器的ip地址? -U? Samba用戶名

?“-L”即為list的含義,“-U”是user的意思,如果Samba服務器是無密碼訪問的話,可以省略“-U? Samba用戶名”。

例如:samba需要密碼登陸時,查看共享方法如下:

# smbclient? -L //10.0.0.163/public –U david

Samba無密碼訪問時,執行如下命令:

# smbclient? -L //10.0.0.163/public

password: 直接回車即可。

2、登陸Samba服務器

如果需要在Linux客戶端登陸Samba服務器,用法如下:

# smbclient? //Samba服務器的ip地址? -U? Samba用戶名

請看下面執行的操作:

# smbclient //10.0.0.163/public -U david

smb: \> ????????????????????? //在這里輸入?即可查看在smb命令行可用的所有命令。

操作過程與登陸FTP服務器很類似,登陸Samba服務器后,就可以進行文件的上傳與下載,如果有足夠的權限,還可以進行修改文件操作。

此外,Samba服務器共享出來的文件還可以在Linux客戶端進行掛載,這就要用到mount命令,如下所示:

# mount -t cifs -l //10.0.0.163/public /mnt/samba/

七、Samba Web管理工具 SWAT

SWAT(Samba WEB Administration Tool) 是通過瀏覽器對 Samba 進行管理的工具之一。通過 SWAT,可以在 Samba 允許訪問范圍內的客戶端,用瀏覽器對服務端的 Samba 進行控制。在線文檔的閱覽、smb.conf 的確認和編輯,以及密碼的變更、服務的重啟等等都可以通過 SWAT 來完成,它的直觀讓 Samba 變得溫和化,對那些不喜歡文本界面管理服務器的朋友來說,是一個強大的工具。

swat工具嵌套在xinetd超級守護進程中,要通過啟用xinetd進程來啟用swat。因此要先安裝xinetd工具包,然后安裝swat工具包。上面已經安裝過samba-swat-3.5.10-125.el6.x86_64,這里不再贅述。

1、配置swat

因為swat是xinetd超級守護進程的一個子進程,所以swat工具配置文件在xinetd目錄中。我們要設置swat配置文件,開啟此子進程,以便在啟用xinetd進程是來啟用swat。swat配置文件在/etc/xinetd.d目錄中。

打開并編輯 /etc/xinetd.d/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                    //swat默認使用tcp的901端口, 可以修改socket_type     = stream                 //通過web來配置samba, 默認使用root賬號進入, 可以修改成其他的系統用戶wait            = noonly_from       = 127.0.0.1              
only_from = 10.0.0.0 //添加此行, 將“only_from=127.0.0.1”改成“only_from=10.0.0.0”, 只允許內網范圍對SWAT進行訪問user = rootserver = /usr/sbin/swat //swat的執行程序默認在/usr/sbin目錄下log_on_failure += USERIDdisable = yes //將“disable=yes”改成“disable=no”, 這樣swat子進程就可以隨xinetd超級守護進程一起啟動了 }
復制代碼

2、啟動 swat

因為swat是xinetd的子進程,所以只要啟用了xinetd,那么swat也就會伴隨xinetd啟動。

3、打開 swat

在服務端啟動 swat后,我們就可以通過 swat允許范圍內的客戶機的瀏覽器中,通過 http://服務器的內網IP:901 來訪問服務端的 swat了,輸入 root用戶的用戶名及密碼進入 swat的管理首頁,如下所示:

swat管理中心的首頁

通過 swat管理 Samba 與直接修改 smb.conf 的方式,在本質上并無差異,但通過瀏覽器訪問的方式,可以使 Samba 的管理更加溫和化,更加適用于不擅長使用文本界面、直接修改配置文件的朋友。

4、通過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用戶,可以修改密碼,新建刪除用戶。

詳細設置請自行查閱資料,以下僅供參考:

http://yuanbin.blog.51cto.com/363003/117105

至此,Samba服務器的所有配置完成。

轉載于:https://www.cnblogs.com/wangmo/p/7199112.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/392036.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/392036.shtml
英文地址,請注明出處:http://en.pswp.cn/news/392036.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

傅里葉變換 直觀_A / B測試的直觀模擬

傅里葉變換 直觀Many of us have heard, read, or even performed an A/B Test before, which means we have conducted a statistical test at some point. Most of the time, we have worked with data from first or third-party sources and performed these tests with ea…

tableau for循環_Tableau for Data Science and Data Visualization-速成課程

tableau for循環Tableau is software that can help you see and understand your data. It is used for data science and data visualization. Tableau allows you to connect to almost any database, drag and drop to create visualizations, and share with a click.Tabl…

請求接口時使用時間戳

&tnew Date().getTime()轉載于:https://www.cnblogs.com/Glant/p/11271960.html

Java—servlet簡單使用

【步驟 1】創建一個名為 input.html 的 HTML 頁面,其中包括一個表單,表單中包含兩 個文本域,分別供用戶輸入學號和姓名,該頁面也包含提交和重置按鈕。 【步驟 2】定義一個名為 com.demo.Student 類,其中包括學號 sno 和…

phpstrom+phpstudy+postman

1.打開phpstudy xdebug 擴展 2.修改php.ini [XDebug]xdebug.profiler_output_dir"D:\phpStudy\tmp\xdebug"xdebug.trace_output_dir"D:\phpStudy\tmp\xdebug"zend_extension"D:\phpStudy\php\php-5.5.38\ext\php_xdebug.dll";是否允許Xdebug跟蹤…

SIP協議

SIP協議 SIP協議主要包括 SIP頭 SIP內容 和附加內容三個部分 項目格式備注示例SIP頭一行,以\r\n結尾REGISTER sip:172.30.2.35 SIP/2.0\r\nSIP內容很多行,每行為Key,Value的形式CSeq: 1 REGISTER\r\n附加內容很多行1 SIP頭 項目格式含義示例I…

android emmc 命令,使用CoreELEC的ceemmc工具將系統寫入emmc

最近在折騰電視盒子,CoreELEC是專門為晶晨CPU開發系統,個人覺的非常不錯,相關資料可以百度。這里介紹將卡載系統刷入emmc內置存儲的方法。因為找不到相關的教程,只在官網上找到了ceemmc這個工具的使用說明,所以搬過來。…

ios 自定義字體_如何僅用幾行代碼在iOS應用中創建一致的自定義字體

ios 自定義字體by Yuichi Fujiki藤木雄一 In this article, youll learn how to create a unified custom look throughout your app with these simple tricks.在本文中,您將學習如何使用這些簡單的技巧在整個應用程序中創建統一的自定義外觀。 我們想做什么 (Wh…

truncate 、delete與drop區別

相同點: 1.truncate和不帶where子句的delete、以及drop都會刪除表內的數據。 2.drop、truncate都是DDL語句(數據定義語言),執行后會自動提交。 不同點: 1. truncate 和 delete 只刪除數據不刪除表的結構(定義)drop 語句將刪除表的結構被依賴的約束(const…

Java—jsp編程

1. 編寫 login.jsp&#xff0c;登錄時只輸入一個昵稱。但要檢查昵稱是否已經被其他用戶使用。 源代碼 Login.jsp <% page contentType"text/html;charsetUTF-8" language"java" %><%request.setCharacterEncoding("UTF-8"); //設置編…

Java 8 Optional類深度解析

2019獨角獸企業重金招聘Python工程師標準>>> 身為一名Java程序員&#xff0c;大家可能都有這樣的經歷&#xff1a;調用一個方法得到了返回值卻不能直接將返回值作為參數去調用別的方法。我們首先要判斷這個返回值是否為null&#xff0c;只有在非空的前提下才能將其作…

鴿子 迷信_人工智能如何幫助我戰勝鴿子

鴿子 迷信鴿子回避系統 (Pigeon Avoidance System) Disclaimer: You are reading Part 1 that gives an overview of the project. Part 2 describes the technical setup and data collection. Part 3 is about how to train the Pigeon Recognition Model and run it on Rasp…

華為鴻蒙會議安排,2020華為HDC日程確定,鴻蒙、HMS以及EMUI 11成最關注點

原標題&#xff1a;2020華為HDC日程確定&#xff0c;鴻蒙、HMS以及EMUI 11成最關注點HDC&#xff1a;華為開發者大會&#xff0c;目前已經確定將在9月10日正式開幕。日前華為已經在其官網公布了HDC的日程&#xff0c;從現在的消息看華為開發者大會有三大點最受業內關注。鴻蒙操…

反射、元類

一、反射 1、什么是反射&#xff1a;就是反省&#xff0c;自省的意思 反射指的是一個對象應該具備&#xff0c;可以增、刪、改、查屬性的能力&#xff0c;通過字符串來操作屬性 涉及的四個函數&#xff0c;這四個函數就是普通的內置函數&#xff0c;只是沒有下劃線而已&#xf…

Java—簡單的圖書管理系統

簡單的圖書管理系統 通過數據源和DAO對象訪問數據庫。其中JavaBeans實現模型&#xff0c;訪問數據庫&#xff0c;Servlet實現控制器&#xff0c;JSP頁面實現視圖。 ? 模型包括2個JavaBean&#xff1a;BookBean用于存放圖書信息&#xff0c;BookDAO用于訪問數據庫。 ? 控制器包…

成功的秘訣是什么_學習編碼的10個成功秘訣

成功的秘訣是什么This post was originally published on Coder-Coder.com.該帖子最初發布在Coder-Coder.com上 。 If you’re teaching yourself how to code, you may have more questions than answers when you’re starting out.如果您正在教自己如何編碼&#xff0c;那么…

ZJUT 地下迷宮 (高斯求期望)

http://cpp.zjut.edu.cn/ShowProblem.aspx?ShowID1423 設dp[i]表示在i點時到達終點要走的期望步數&#xff0c;那么dp[i] ∑1/m*dp[j] 1&#xff0c;j是與i相連的點&#xff0c;m是與i相鄰的點數。建立方程組求解。重要的一點是先推斷DK到達不了的點。須要bfs預處理一下進行…

html收款頁面模板,訂單收款.html

&#xfeff;訂單收款$axure.utils.getTransparentGifPath function() { return resources/images/transparent.gif; };$axure.utils.getOtherPath function() { return resources/Other.html; };$axure.utils.getReloadPath function() { return resources/reload.html; };…

pandas之時間數據

1.時間戳Timestamp() 參數可以為各種形式的時間&#xff0c;Timestamp()會將其轉換為時間。 time1 pd.Timestamp(2019/7/13) time2 pd.Timestamp(13/7/2019 13:05) time3 - pd.Timestamp(2019-7-13) time4 pd.Timestamp(2019 7 13 13:05) time5 pd.Timestamp(2019 July 13 …

scikit keras_Scikit學習,TensorFlow,PyTorch,Keras…但是天秤座呢?

scikit kerasWelcome all! In the first episode of this series, I investigated the four most known machine learning frameworks and discussed which of these you should learn depending on your needs and goals.w ^迎閱讀所有&#xff01; 在本系列的第一集中 &#…