RHCE課程-RH253Linux伺服器架設筆記三-Samba伺服器配置(1)

技術小美發表於2017-11-18
今天我們要架設的samba伺服器,功能主要就是類unix機器與windows機器的檔案共享,也可以是共享印表機,samba軟體整合了SMB協議及Netbios協議,使其執行在TCP/IP上
SMB協議:Server Message Block(服務資訊塊),可看作是區域網上的共享文夾印表機的一種協議。
SAMBA服務有兩個程式 
smbd:SMB伺服器 
nmbd:netbios名稱伺服器
玩過windows的應該都知道netbios吧,這個我就不多說了,但是一般linux上面的這個功能都沒用,因為netbios不穩定,還不如直接用DNS
下面介紹下SAMBA伺服器的特點 
1、在網路上共享目錄,就好像一臺檔案伺服器一樣
2、在網路上共享印表機
3、決定共享目錄的訪問許可權,可以讓一個人、某些人、組和所有人訪問
4、決定印表機的訪問許可權,可以讓一個人、某些人、組和所有人使用
可以看出,安裝和配置好了Samba伺服器後,Linux就可以使用Windows網路中的檔案和列印伺服器了。
smb用的指令碼檔案 
/etc/rc.d/init.d/smb 
所以我們啟動samba伺服器的時候使用 
service  smb restart 
nmbd 使用的埠是 137138 
smbd使用的埠是139445,所以一般禁止samba服務我們控制139和445埠
139埠也是屬於netbios ,但是最好禁止的時候把139埠也禁用了
所需的RPM包:samba
圖形化軟體:samba-swat
samba是可以通過圖形介面配置的
我們今天只講修改配置檔案配置
但是提示大家注意一點 

如果使用圖形介面配置,從新啟動伺服器後,配置檔案內被註釋的行就會被刪除,圖形介面配置的軟體是這樣設計的 
配置檔案是 
/etc/samba/smb.conf 
samba服務的主配置檔案/etc/samba/smb.conf主要由兩部分組成
Global Settings 全域性引數設定 
該設定都是與Samba 服務整體執行環境有關的選項,它的設定專案是針對所有共享資源的
Share Definitions 共享目錄 
該設定針對的是共享目錄個別的設定,只對當前的共享資源起作用
samba伺服器與使用者的家目錄相關,所以設計到selinux,這個大家要注意 
下面大家先安裝samba伺服器
image
大家開啟配置檔案吧
vim /etc/samba/smb.conf
配置檔案有288行,我把重要的給大家說說
image
設定Samba伺服器所屬的群組名稱或Windows的域名 
workgroup = MYGROUP 
server string 是伺服器的描述
設定可訪問Samba 伺服器的主機、子網或域 
hosts allow = 
預設是註釋了的,意思是允許所有訪問,請大家仔細看這個選項,他的表達方式比較特殊,只需要寫出網路位然後以點結束,主機位省略
127.0.0.0 只寫 127.
192.168.12.0 寫成 192.168.12.
切記~~~
image
還有全域性的hosts allow 可以在區域性使用,但是hosts deny 引數只能在全域性使用 
設定是否允許列印配置檔案中的所有印表機開機時自動載入 。 
load printers = yes 
設定Samba 服務啟動時,將自動載入的印表機配置檔案   
printcap name = /etc/printcap 
image
設定guest 賬號名  
guest account = pcguest 
指定Samba 伺服器使用的安全等級  
security = user
image
我們今天只介紹share級別和user級別
其他的三個安全級別有興趣的可以自己去研究下
share就是不用密碼訪問,user 級別就是使用使用者密碼驗證
使用加密口令 
encrypt password = yes/no 
設定Linux 使用者到Windows 的使用者對映。  
username map=/etc/samba/smbusers 
全域性常用的設定基本就這些,應該可以滿足你企業的通常使用
可以把一個linux的sambaID對映成一個虛擬機器的使用者名稱,在windows登陸samba伺服器使用虛擬機器的使用者名稱,這樣就提高了伺服器的安全性
這個引數預設是沒有的,需要自己新增,但是smbusers檔案是存在的
下面介紹下共享目錄的一些設定,其實這個檔案和windows的.ini配置檔案寫法很象
每一個共享目錄都由 [目錄名] 開始,這個目錄名字是client看到的名字
image
image
comment 是共享目錄的描述
path 就是真正的共享目錄位置了
public 是否可以匿名訪問
writable 可以訪問的使用者是否有寫入許可權,要與檔案許可權配合使用
write list 允許寫入許可權的使用者列表
如果printables = yes 那麼這個目錄就被認為是一個印表機,所以一般我們設定成 printables = no ,這樣能理解嗎?
還有一些常用的,但是配置檔案沒有寫入的語句我給大家說說
valid users= 

允許訪問的使用者列表,前提是public設定成no
剛才的write list 要生效的話,writeable 也設定成no 
注意valid users = ,users有個s 不要忘記了,少一個字元這句就沒有意義了 
invalid users =  

不允許訪問的使用者,就算你上面允許他了,但是加入這句,這個使用者也會被拒絕。一般用在允許所有,而禁止某幾個使用者的時候使用
create mode = 640 

很有用的引數,使用者建立的檔案預設許可權 
directory mode = 750  
使用者常見的目錄的預設許可權
但是這兩個引數只在client使用的是圖形介面有效果,如果client使用的命令登陸,那麼這兩句就沒有效果了,所以測試的時候注意了,用mount 掛載的測試不出效果 
最後就是samba 的ID設定
建立samba使用者,主要兩步 
1、useradd redhat 

2、smbpasswd  -a  redhat
 
1、是在系統建立一個redhat使用者,一般我們不設定密碼,把shell改成/sbin/nologin
2、是把剛才建立的使用者變成samba使用者-a 是新建的意思,如果修改密碼就不用加-a 
記住只有安全級別是user 這裡的使用者才會生效
下面具體配置samba伺服器
我們第一個要是實現的功能是共享/public目錄讓所有人訪問,所有人可以寫入檔案,但是不可以刪除或修改其他使用者的檔案
要求看懂了嗎?這就是一個公司的交換檔案伺服器
1、新建public目錄 
讓所有使用者有寫入許可權
image
2、讓使用者不能刪除其他使用者的檔案,所以我們要使用一個冒險位 
image
3、設定selinux 
複製29行,然後執行
image
setsebool -P samba_enable_home_dirs on
image
然後複製39行後面部分,把path修改成我們要改變目錄,用來修改上下文
image
chcon -t samba_share_t /public
image
4、修改配置檔案
修改安全級別為share
image
修改共享目錄描述
image
OK後,重新啟動伺服器
image
selinux要開啟哈,使用setenforce 命令設定,也可以使用 setup命令
5、測試
image
image
smbclient -L 192.168.0.188
密碼直接回車
image
這樣就能看到我們伺服器的相關資訊
smbclient命令還可以這樣用:smbclient //192.168.0.188/public
image
這樣連結上去就像一個ftp伺服器,輸入問號,可以檢視能使用的命令,和FTP的操作差不多
下面我們來掛載
mkdir /mnt/smb
mount -t cifs //192.168.0.188/public /mnt/smb/
記住-t cifs 這是samba的檔案系統格式 
image
這樣掛載要跟具體的目錄哈,表達方式和windows下很相似,不帶引數也可以哈,-t auto 也可以,這個是自動識別的,但是新手,建議多多瞭解
net use r:\192.168.0.188
image
image
#######################Michael分割線#######################
還有不清楚的可以參考[RHEL5企業級Linux服務攻略]–第2季 Samba服務全攻略,下次RHCE課程講解user級別哈~~~
#######################Michael分割線#######################
本文轉自redking51CTO部落格,原文連結:http://blog.51cto.com/redking/140747,如需轉載請自行聯絡原作者


相關文章