1. 程式人生 > >CentOS7-1810 系統Samba配置說明

CentOS7-1810 系統Samba配置說明

Samba是在Linux和UNIX系統上實現SMB協議的一個免費軟體。SMB(Server Messages Block,資訊服務塊)通訊協議是微軟(Microsoft)和英特爾(Intel)在1987年制定的協議,主要是作為Microsoft網路的通訊協議,是一種在區域網上共享檔案和印表機的一種通訊協議,它為區域網內的不同計算機之間提供檔案及印表機等資源的共享服務。SMB協議是客戶機/伺服器型協議,客戶機通過該協議可以訪問伺服器上的共享檔案系統、印表機及其他資源。通過設定“NetBIOS over TCP/IP”使得Samba不但能與區域網絡主機分享資源,還能與全世界的電腦分享資源。後來微軟又把 SMB 改名為 CIFS(Common Internet File System),即公共 Internet 檔案系統,並且加入了許多新的功能。



Samba最大的功能就是可以用於Linux與windows系統直接的檔案共享和列印共享,Samba既可以用於windows與Linux之間的檔案共享,也可以用於Linux與Linux之間的資源共享,由於NFS(網路檔案系統)可以很好的完成Linux與Linux之間的資料共享,因而 Samba較多的用在了Linux與windows之間的資料共享上面。

NFS針對 Unix-Like系統的機器間檔案的共享;
 
CIFS針對windows系統間檔案的共享;
 
SAMBA針對Unix-Like系統和windows系統間檔案的共享;

因為SMB協議是基於客戶機/伺服器型的協議,所以一臺Samba伺服器既可以充當檔案共享伺服器,也可以充當一個Samba的客戶端,例如,一臺在Linux 下已經架設好的Samba伺服器,windows客戶端就可以通過SMB協議共享Samba伺服器上的資原始檔,同時,Samba伺服器也可以訪問網路中 其它windows系統或者Linux系統共享出來的檔案。


在早期,SMB運行於NBT協議(NetBIOS over TCP/IP)上,使用UDP協議的137、138及TCP協議的139埠,後期SMB經過開發,可以直接運行於TCP/IP協議上,沒有額外的NBT層,使用TCP協議的445埠。如果你要使用Linux和早期的windows系統共享檔案,請確認你的windows系統下是否安裝了NetBIOS協議。
NetBios, NetBios over TCP/IP, SMB 之間的關係可以檢視這個網址https://www.cnblogs.com/pipci/p/10144840.html

Samba是一套程式,其中最重要的兩個程序是nmbd和smbd:

smb:提供SMB / CIFS服務(檔案共享和列印)的守護程序,使用SMB協議與客戶進行連線,完成使用者認證,許可權管理和檔案共享任務。

nmb:提供NetBIOS名稱服務的守護程序,可以幫助客戶端定位伺服器和域,相當於WindowsNT中的WINS伺服器,如果只是單純的共享檔案可以關閉這個服務,這樣就不用在防火牆中開發137、138埠,但是在Windows中“桌面”上的“網路”裡不會在顯示共享的主機,只能通過“執行” 開啟 \\IP 的方式連線到共享的目錄。


SAMBA所需的軟體:

1、samba:這個軟體主要包含了SAMBA的主要服務程式(smbd及nmbd),SAMBA相關的檔案,以及其它與SAMBA相關的logrotate配置檔案及開機預設選項檔案等。

2、samba-common:這個軟體主要提供了SAMBA的主要配置檔案(smb.conf),smb.conf語法檢驗的測試程式(testparm)等。

3、samba-client:這個軟體則提供了當Linux做為SAMBA Client端時,所需要的工具指令,例如Smbmount命令用於Linux下掛載Windows共享檔案等。


一、samba相關軟體安裝
-----------------------------------------------------------------------
[[email protected] ~]# yum install samba     #同時會一起把samba-common軟體一起安裝

[[email protected] ~]# yum install samba-client
-----------------------------------------------------------------------

二、檢視nmb和smb服務的狀態,並設定開機啟動

1、檢視服務狀態,如果沒有啟動啟動他
------------------------------------------------------
[[email protected] ~]# systemctl status smb.service             #檢視
[[email protected] ~]# systemctl status nmb.service

[[email protected] ~]# systemctl start smb.service              #啟動
[[email protected] ~]# systemctl start nmb.service
------------------------------------------------------

2、設定伺服器開機啟動
------------------------------------------------------
[[email protected] ~]# systemctl enable smb.service
[[email protected] ~]# systemctl enable nmb.service
------------------------------------------------------

三、Samba伺服器配置

在安裝了Samba服務軟體後,會自動在Linux系統中生成一系列的配置檔案,瞭解它們的用途是配置Samba伺服器所必須的。

1、主要配置檔案 /etc/Samba/smb.conf
這是Samba服務的主配置檔案,檔案由一系列段和選項構成.一個段由一對方括號中的段名開始,直到下一個段名結束,主要由全域性設定(Global Settings)和共享定義(Share Definitions)兩部分組成。其中全域性設定定義了對影響整個Samba系統執行的全域性選項,用於設定整個系統的規則,如果在其他段中沒有再對這些選項進行重新設定的話,就以全域性選項為主:共享定義則是對系統中共享資源進行定義,該部分可以由多個段組成,其中常見的包括:使用者主目錄段,共享目錄和印表機段,每個段中可以再定義詳細的共享選項。smb.conf檔案的格式如下所示:
----------------------------------------------------------------------------

#======================= Global Settings =======================

[global]      #全域性選項  

#======================= Share Definitions =======================

[homes]       #共享選項
   
[printers]    #共享選項
 
-----------------------------------------------------------------------------
smb.conf配置檔案中使用;號和#號作為註釋符,凡是使用這兩個符號開頭的行都會被Samba視為註釋行而忽略處理,這個配置檔案中,大小寫是沒關係的,因為Windows不分大小寫。配置檔案中選項的格式如下所示。
-------------------------
選項名稱 = 選項值
-------------------------
四、常用的全域性選項及說明如下所示

先說一下samba定義的變數:
%S = 當前服務名(如果有的話)
%P = 當前服務的根目錄(如果有的話)
%u = 當前服務的使用者名稱(如果有的話)
%g = 當前使用者說在的主工作組
%U = 當前對話的使用者名稱
%G = 當前對話的使用者的主工作組
%H = 當前服務的使用者的Home目錄
%v = Samba服務的版本號。
%h = 執行Samba服務機器的主機名
%m = 客戶機的NETBIOS名稱
%L = 伺服器的NETBIOS名稱
%M = 客戶機的主機名
%N = NIS伺服器名
%p = NIS服務的Home目錄
%R = 說採用的協議等級(值可以是CORE, COREPLUS, LANMAN1, LANMAN2,NT1)
%d = 當前服務程序的ID
%a = 客戶機的結構(只能識別幾項:Samba,WfWg,WinNT,Win95)
%I = 客戶機的IP
%T = 當前日期和時間

1、workgroup
該選項設定Samba伺服器所屬工作組名稱,通過網路上的芳鄰可以從該工作組中找到該Samba伺服器。預設設定如下:

workgroup = WORKGROUP
-------------------------------------------------------
2、wins support
該選項設定Samba伺服器是否作為WINS伺服器。如果要啟用該選項,則不能設定wins server選項,預設設定如下:

#   wins support = no
選項預設都是被註釋掉了
-------------------------------------------------------
3、wins server

該選項指定WINS伺服器的IP地址或主機名。預設設定如下:

;   wins server = w.x.y.z
選項預設都是被註釋掉了
-------------------------------------------------------
4、interfaces 和bind interfaces only = yes
如果伺服器有多個IP地址或網路介面,可以使用interfaces選項把IP地址或網路介面列出來。如果bind interfaces only選項設定為yes,則表示Samba將繫結(監聽)interfaces選項所設定的IP地址或網路介面,只通過這個些IP地址或網路介面提供服務,預設設定如下:

;   interfaces = 127.0.0.0/8 eth0

;   bind interfaces only = yes
上面兩個選項預設都是被註釋掉了
-------------------------------------------------------
5、dns proxy
該選項設定是否啟用DNS代理功能,預設設定如下:

dns proxy = no
-------------------------------------------------------
6、log file
該選項用來設定Samba日誌檔案的存放位置和檔名稱,預設設定如下:

log file = /var/log/samba/log.%m
這個選項中的.%m是Samba配置檔案的保留變數,表示客戶端的NetBIOS名稱。
-------------------------------------------------------
7、max log size
日誌檔案最大能達到多少Kbytes,如果超過該限制,則Samba自動在當前的日誌檔名後面加上“.old”然後建立一個新的日誌檔案繼續寫入。如果為0,則表示沒有大小限制。預設設定如下:

max log size = 1000
-------------------------------------------------------
8、syslog only
設定Samba只通過syslog進行日誌記錄。預設設定如下:

#   syslog only = no   
預設這個選項被登出掉
-------------------------------------------------------
9、syslog
syslog的日誌級(0,err)(1,warning)(2,notice)(3,ifno)(4或以上,debug)。預設設定如下:

syslog = 0
-------------------------------------------------------
10、server role
伺服器角色。定義Samba將以何種模式操作。可能的值是“獨立伺服器”、“成員伺服器”、“經典主域伺服器”、“經典備份域控制器”、“活動目錄域控制器",預設設定如下:

server role = standalone server
-------------------------------------------------------
11、passdb backend
密碼資料庫格式,之前samba伺服器的使用者資訊都是以資料檔案資訊存放,為了加快速度, 目前密碼檔案已經轉為使用資料庫了! 預設的資料庫格式為tdbsam ,存放在/var/lib/samba/private/passdb.tdb,早期使用smbpasswd命令來管理使用者密碼, 後來使用 TDB 資料庫,因此建議使用新的 pdbedit 指令來管理使用者資料smbpasswd仍然可以使用。預設設定如下:

passdb backend = tdbsam
-------------------------------------------------------
12、obey pam restrictions
在Samba中整合PAM的訪問控制功能。預設設定如下:

obey pam restrictions = yes
-------------------------------------------------------
13、 unix password sync = yes
當用戶改變samba加密的密碼時,SAMBA會試著更新UNIX使用者密碼。預設設定如下:

unix password sync = yes
-------------------------------------------------------
14、passwd program
這個就指定更改密碼的命令。預設設定如下:

passwd program = /usr/bin/passwd %u
-------------------------------------------------------
15、passwd chat
更改密碼時的對話。預設設定如下:

passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
-------------------------------------------------------
16、pam password change
為samba開啟pam改變密碼控制機制的支援。預設設定如下:

pam password change = yes

-------------------------------------------------------
17、map to guest
這個配置的意思是將所有samba系統主機所不能正確識別的使用者都對映成guest使用者。預設設定如下:

map to guest = bad user
-------------------------------------------------------
18、usershare max shares
最大使用者共享數量,0表示禁用使用者共享。預設設定如下:
 
usershare max shares = 100
-------------------------------------------------------
19、usershare allow guests
是否允許guest使用者訪問,這相當於在共享定義中設定guest ok = yes選項,最終以共享中的設定為準。

usershare allow guests = yes
-------------------------------------------------------

以下是smb.conf配置檔案中沒有提到的,但是可以通過testparm -v 命令檢視到預設設定,如果不符合自己的實際設定,可以在配置檔案中加入相應
的選項。
-------------------------------------------------------
20、netbios name = CENTOS7

設定Samba Server的NetBIOS名稱,在“網路上的芳鄰”中顯示的主機名,如果不填,則預設會使用該伺服器的DNS名稱的第一部分。
-------------------------------------------------------
21、server string = Samba 4.8.3

設定 Samba Server 的註釋,可以是任何字串,也可以不填。巨集%v表示顯示Samba的版本號。
-------------------------------------------------------
22、hosts allow = 127. 192.168.1. 192.168.10.1
設定允許連線到Samba Server的客戶端,多個引數以空格隔開。可以用一個IP表示,也可以用一個網段表示。這選項也可以
在共享段起作用,只對某個共享的目錄單獨起作用。

hosts deny 與hosts allow 剛好相反。

ALL 表示所有使用者,例如:hosts allow = ALL

EXCEPT 表示排除,例如:允許除192.168.1.100以為的所有主機訪問,格式為 hosts allow = ALL EXCEPT 192.168.1.100

-------------------------------------------------------
23、max connections = 0

max connections用來指定連線Samba Server的最大連線數目。如果超出連線數目,則新的連線請求將被拒絕。0表示不限制。
-------------------------------------------------------
24、deadtime = 0

deadtime用來設定斷掉一個沒有開啟任何檔案的連線的時間。單位是分鐘,0代表Samba Server不自動切斷任何連線。
-------------------------------------------------------
25、time server = yes/no

time server用來設定讓nmdb成為windows客戶端的時間伺服器
-------------------------------------------------------
26、security = user

設定使用者訪問Samba Server的驗證方式,一共有四種驗證方式。
1. user:Samba Server共享目錄只能被授權的使用者訪問,由Samba Server負責檢查賬號和密碼的正確性。賬號和密碼要在本Samba Server中建立。
2. domain:域安全級別,使用主域控制器(PDC)來完成認證。
3. auto:這是Samba中的預設安全設定,Samba會通過伺服器角色引數(如果設定)來確定安全模式。
4. ads:在此模式下,Samba將充當ADS領域中的域成員

在samba4中share 和 server驗證方式已被棄用
-------------------------------------------------------
27、encrypt passwords = yes/no

是否將認證密碼加密。因為現在windows作業系統都是使用加密密碼,所以一般要開啟此項。不過配置檔案預設已開啟。
-------------------------------------------------------
28、username map = /etc/samba/smbusers

用來定義使用者名稱對映,比如可以將root換成administrator、admin等。不過要事先在smbusers檔案中定義好。比如:root = administrator admin,這樣就可以用administrator或admin這兩個使用者來代替root登陸Samba Server,更貼近windows使用者的習慣。
-------------------------------------------------------
29、guest account = nobody

用來設定Samba中guest使用者對用的系統使用者名稱。
-------------------------------------------------------
30、load printers = yes/no

設定是否在啟動Samba時就共享印表機。現行幾乎都是網路印表機了,預設關閉就可以,這裡也不討論印表機的問題。
-------------------------------------------------------
31、 smb ports = 139 445
指定服務監聽SMB流量的埠。

五、常用的共享選項及說明


在該段中指定了一個通過Samba進行共享的目錄,定義使用者訪問該目錄的各種設定。如下所示:

[共享名稱]:這個共享名稱很重要,它是一個代號而已,使用者在“網路上的芳鄰”中所看到的共享目錄名

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用來指定該共享路徑是否可寫。

read only = yes/no
說明:設定共享目錄為只讀,這個選項和writable是互斥的,最好不要兩個同時出現如果同時出現,那麼最後出現的那個設定為主要的設定。
 
available = yes/no
說明:available用來指定該共享資源是否可用。
 
admin users = 該共享的管理者
說明:admin users用來指定該共享的管理員(對該共享具有完全控制權限)。在samba 3.0中,如果使用者驗證方式設定成“security=share”時,此項無效。
例如:admin users =bobyuan,jane(多個使用者中間用逗號隔開)。
 
valid users = 允許訪問該共享的使用者
說明:valid users用來指定允許訪問該共享資源的使用者。
例如:valid users = bobyuan,@bob,@tech(多個使用者或者組中間用逗號隔開,如果要加入一個組就用“@+組名”表示。)
 
invalid users = 禁止訪問該共享的使用者
說明:invalid users用來指定不允許訪問該共享資源的使用者。
例如:invalid users = root,@bob(多個使用者或者組中間用逗號隔開。)
 
write list = 允許寫入該共享的使用者
說明:write list用來指定可以在該共享下寫入檔案的使用者。
例如:write list = bobyuan,@bob
 
public = yes/no
說明:public用來指定該共享是否允許guest賬戶訪問。
 
guest ok = yes/no
說明:意義同“public”。

create mask = 0700
說明:指定使用者通過Samba在該共享目錄中建立檔案的預設許可權。0600代表建立檔案的許可權為rw-------

directory mask = 0700
說明:指定使用者通過Samba在該共享目錄中建立目錄的預設許可權。0600代表建立目錄的許可權為rwx------


更多設定參考官方文件
https://www.samba.org/samba/docs/man/


六、配置檔案生效與檢驗
1、與大部分程式配置檔案一樣,smb.comf檔案被修改後並不會立刻生效,需要重啟smbd和nmbd服務。在完成配置檔案我們需要用testparm命令來驗證檔案的格式是否正確,命令如下:

[[email protected] ~]# testparm
引數
-v:查閱完整的引數設定,連同預設值也會顯示出來

------------------------------------------------------
[[email protected] ~]# testparm      #進行檢測
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
WARNING: The "syslog" option is deprecated
Processing section "[homes]"
Processing section "[printers]"
Processing section "[print$]"
Loaded services file OK.         #如果格式沒有問題將不會看到任何錯誤資訊,如果這行的前面有Unknown parameter encountered:字樣的提示就說明有錯誤。
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions      #回車後將會顯示smb.conf檔案當前的配置內容

# Global parameters
[global]
    printcap name = cups
    security = USER
    workgroup = SAMBA
    idmap config * : backend = tdb
    cups options = raw
       ----後面的省略----
--------------------------------------------------------
如果輸出中沒有任何錯誤或警告資訊,表示檔案格式沒有問題。否則,輸出結果中將會給出錯誤的地方以及錯誤的原因。

2、重啟服務
---------------------------------------------------------
[[email protected] ~]# systemctl restart smb.service
[[email protected] ~]# systemctl restart nmb.service
---------------------------------------------------------

七、Samba使用者管理
Samba的使用者是與作業系統的使用者聯絡在一起的,在建立Samba使用者前,必須先新增一個與之同名的作業系統使用者。也就是說Samba的使用者必須是作業系統中已經存在的使用者,但兩者的密碼可以不相同。在來說下使用者在Windows系統下通過Samba訪問Linux系統的許可權問題,當我們需要通過Samba所提供的功能來進行Linux的訪問時,Linux上面的檔案或目錄是否可讀寫還要取決於Linux系統上的使用者是否對該檔案可讀寫,所以在Windows上訪問Samba伺服器時,要看Samba對應的使用者對Linux系統的檔案是否可讀寫,同時Samba配置檔案也會限制讀寫許可權。例如:當Samba使用者A要對Linux上面的T檔案進行寫的時候,smb.conf的配置檔案中的共享設定要具有可寫的許可權,A使用者對應的Linux使用者也要對T檔案有寫的許可權。

Samba使用者通過pdbedit命令進行管理。命令用法如下:

[[email protected] ~]# pdbedit 引數

引數:
 –a username:新建Samba賬戶。
 –x username:刪除Samba賬戶。
 –L:列出Samba使用者列表,讀取passdb.tdb資料庫檔案。
 –Lv:列出Samba使用者列表的詳細資訊。
 –c “[D]” –u username:暫停該Samba使用者的賬號。
 –c “[]” –u username:恢復該Samba使用者的賬號。

舉例:
---------------------------------------------------------------------------
[[email protected] ~]# pdbedit -a root               #建立root使用者
new password:
retype new password:
Unix username:        root
NT username:          
Account Flags:        [U          ]
User SID:             S-1-5-21-581854895-1790122719-2797274960-1000
Primary Group SID:    S-1-5-21-581854895-1790122719-2797274960-513
Full Name:            root
Home Directory:       \\centos7\root
HomeDir Drive:        
Logon Script:         
Profile Path:         \\centos7\root\profile
Domain:               CENTOS7
Account desc:         
Workstations:         
Munged dial:          
Logon time:           0
Logoff time:          三, 06 2月 2036 23:06:39 CST
Kickoff time:         三, 06 2月 2036 23:06:39 CST
Password last set:    五, 21 12月 2018 11:45:14 CST
Password can change:  五, 21 12月 2018 11:45:14 CST
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

[[email protected] ~]# pdbedit -L              #查詢目前已經存在的Samba帳號
root:0:root

[[email protected] ~]# smbpasswd root         #通過smbpasswd命令修改帳號密碼
-----------------------------------------------------------------------

如果要新增額外的Samba使用者帳號,若該帳號原本不存在,則先使用useradd新增系統帳號,再通過pdbedit -a命令新增Samba使用者帳號。

八、使用者對映
由於Samba使用者必須要與作業系統使用者同名,出於系統安全或使用習慣的考慮,我們可以把上面的root使用者對映為administrator使用者或admin使用者,對映後就無需在新增administrator或admin使用者了,也可以防止Samba使用者通過Samba帳號來猜測作業系統使用者的資訊。對映後的使用者其許可權和密碼都和root一樣,對映步驟如下:

1、編輯smb.conf檔案,在[global]部分新增使用者對映檔案(該檔案由使用者手動建立,可以把他放在系統可以訪問的任何位置),新增內容如下所示:

username map = /etc/samba/smbusers           #一般檔案都放在這裡

2、手動建立使用者對映檔案/etc/samba/smbusers ,該檔案的格式如下:

Samba使用者帳號 = 需要對映的使用者列表

列表中的使用者名稱之間以空格進行分割,如下所示。

[[email protected] ~]# vi /etc/samba/smbusers

root = administrator admin

3、重啟mbd和mbd服務

新增上面的選項可能有問題Centos7 1810測試,就是新增完以後即使允許不需要密碼訪問,也得先提供密碼登入。Debian9.5就沒問題

九、配置例項

1、不需要密碼的共享,我們有時候需要將某個目錄共享給所有人訪問,要求/home/share1目錄所有人都可以讀寫,/home/share2目錄所有人只讀,我們需要先把這兩個目錄的許可權給成777,這樣任何人才可以對目錄進行操作,smb.conf配置檔案如下:

-----------------------------------------------------------------------

#======================= Global Settings =======================

[global]

   workgroup = WORKGROUP

   netbios name = SAMBA-CENTOS7

   dns proxy = no
 
   security = user

   passdb backend = tdbsam

   map to guest = bad user            #這行很重要決定任何使用者是否可以訪問                  

   load printers = no

#======================= Share Definitions =======================

[share1]
   comment = guest
   browseable = yes
   path = /home/share1
   available = yes
   guest ok = yes
   writable = yes
   create mask = 0700
   directory mask = 0700

[share2]
   comment = guest
   browseable = yes
   path = /home/share2
   available = yes
   guest ok = yes
   read only = yes

   
 -----------------------------------------------------------------------  

十、防火牆設定
Samba中預設會啟用多個埠,這包括資料傳輸的TCP埠139,445,以及進行NetBIOS名稱解析之類工作的UDP埠137,138,我們如果只是為了傳輸資料可以只開放445埠,前提是smb ports = 的選項中有445埠,我們也可以配置smb ports = 445 ,這樣Samba就只監聽445埠,這樣配置完在Windows中“桌面”上的“網路”裡不會在顯示共享的主機,只能通過“執行” 開啟 \\IP 的方式連線到共享的目錄。防火牆具體的配置命令這裡就不說了。

檢視smb ports選項預設設定的埠:
[[email protected] ~]# testparm -v | grep port

檢視Samba監聽的埠號:
[[email protected] ~]# ss -tlunp  | grep mbd       #ss命令是netstat命令的替代

可以直接關閉防火牆:
[[email protected] ~]# systemctl stop firewalld.service

十一、SeLinux設定
SeLinux會影響到Samba的訪問,最直接的方法就是關閉他。

1、檢視SeLinux狀態
[[email protected] ~]# sestatus

2、臨時關閉SeLinux
[[email protected] ~]# setenforce 0

3、永久關閉SeLinux,需要重啟機器
編輯/etc/selinux/config檔案,將SELINUX的值設定為disabled,下次開機SELinux就不會啟動了


十二、Linux客戶端上訪問

Linux客戶端上訪問Windows系統或Samba伺服器上共享資源的方式主要有兩種,可以使用smbclient程式訪問共享資源,也可以使用mount命令把共享目錄掛載到本地目錄上使用。

1、smbclient是Samba所提供的一個類似於FTP的客戶端程式,使用smbclient連結到共享的資源後,可以使用ls,get,put等類似於FTP的命令對共享資源進行操作,首先要安裝smbclient程式:
---------------------------------------
[[email protected] ~]# yum install samba-client
---------------------------------------
smbclient命令的格式如下所示:

smbclient  [選項] //[address]/[共享目錄]

該命令常用的選項及說明如下所示
-I=IP: 連線指定的IP地址
-L=Host: 獲取指定共享資源列表
-p=Port: 指定要連線的共享資源伺服器埠號
-U=Username: 指定連線共享伺服器使用的使用者帳號
-N: 不要求輸入密碼
-?:顯示命令的幫助資訊
-V :顯示命令的版本資訊

例如要檢視共享伺服器192.168.1.30上的共享資源列表,命令如下:
----------------------------------------------------------------------
[[email protected] ~]# smbclient -L=192.168.1.27 -U administrator
Enter SAMBA\administrator's password:                #要求輸入administrator帳號的密碼

    Sharename       Type      Comment
    ---------       ----      -------
    ADMIN$          Disk      遠端管理
    C$              Disk      預設共享
    IPC$            IPC       遠端 IPC
    windd           Disk      
Reconnecting with SMB1 for workgroup listing.
Connection to 192.168.1.27 failed (Error NT_STATUS_RESOURCE_NAME_NOT_FOUND)
Failed to connect with SMB1 -- no workgroup available

----------------------------------------------------------------------
通過上面的檢視可以看到共享的資源為windd

通過smbclient命令登入到共享主機資源,命令如下:
----------------------------------------------------------------------
[[email protected] ~]# smbclient  //192.168.1.27/windd -U administrator
Enter SAMBA\administrator's password:
Try "help" to get a list of possible commands.
smb: \>
----------------------------------------------------------------------
在smb: \>下面其實就是在 //192.168.1.30/windd這個目錄下,我們可以使用ls,get,put等命令進行資料的傳輸,常用命令如下:

? :列出所有可以使用的命令
cd :遠端共享主機上切換目錄
del :刪除某個檔案
lcd :本機主機上切換目錄
ls :檢視當前所在目錄的檔案
get :下載檔案
put : 上傳檔案
rm : 刪除檔案
exit :退出

2、通過mount命令掛載共享目錄到本地。
在使用smbclient命令一點也不方便直觀,其實除了smbclient為,Linux客戶端也可以像NFS一樣使用mount命令把遠端的共享資料夾掛載到本地的目錄上進行使用。掛載後對共享資料夾的訪問就像操作本地目錄一樣方便。首先需要安裝cifs-utils軟體包(以及cifs-utils依賴的軟體包):
---------------------------------------------
[[email protected] ~]# yum install cifs-utils
---------------------------------------------

掛載命令如下:

[[email protected] ~]# mount.cifs //[address]/[folder] -o user=[username] [mount point]
 
[[email protected] ~]# mount -t cifs //[address]/[folder] -o user=[username] [mount point]
 
[[email protected] ~]# mount -t cifs //[address]/[folder] -o domain=[domain_name],user=[username] [mount point]

[address]是windows的IP地址,[folder]是windows下的共享目錄,[username]是window下的設定folder共享時的使用者,如果該使用者使用域管理(如企業或組織使用者),需要設定domain ;[mount point]是Linux系統上的掛在點,mount.cifs命令可以取代mount -t cifs命令。

掛在舉例:將共享檔案windd掛載到linux系統的/mnt目錄,共享使用者為administrator
---------------------------------------------------------------------
[[email protected] ~]# mount.cifs //192.168.1.27/windd -o user=administrator /mnt/
Password for [email protected]//192.168.1.27/windd:  ********                   #這裡要求輸入共享使用者administrator的密碼
[[email protected] ~]#
---------------------------------------------------------------------