samba:
啟動服務:nmb.server;smb.server
會通過檔案系統的方式輸出給用戶端
smb:Service Message Block;服務資訊塊
cifs:Common Internet File System,通用互連網檔案系統
samba:Andrew Tridgell;熱情奔放的桑巴舞,主要的協議 cifs,協議
1.功能:
檔案系統共用;
NetBIOS協議;
列印服務;
2、工作模型
peer to peer(Work Group):工作群組模型
domain devel:領域模型
實現方式:LDAP:Lightweight Directory Access Protocol
輕量級目錄服務訪問協議
3、安裝 :yum install samba
一、程式環境:
4、設定檔:
/etc/samba/smb.conf
5、主程式:
nmbd:Network Naming Service, 主要是為了完成NetBIOS網域名稱解析
smbd:SMB/CIFS Service;根本的samba主程式
6、Unit File:
/usr/lib/systemd/system/nmb.service
/usr/lib/systemd/system/smb.service
7、監聽的連接埠:
137/udp, 138/udp
139/tcp, 445/tcp
8、用戶端程式:
mount -t cifs = mount.cifs
專用於掛載samba檔案系統的方式
smbclient:互動式命令列用戶端工具;
注意:samba使用的是系統中的使用者名稱,但是不會使用其密碼,samba內部提供了一個內建的密碼機制!
二、samba的配置:
/etc/samba/smb.conf
兩類配置段:
全域配置:
[global]
Network-Related Options ----網路相關的選項
workgroup = MYGROUP //定義工作群組組名
server string = Samba Server Version %v
//定義提示資訊,%v表示宏定義samba的版本號碼
; netbios name = MYSERVER //win主機為了在win解析對等網路的主機名稱時,當前主機用什麼去相應
; interfaces = lo eth0 192.168.12.2/24 192.168.13.2/2
#啟用的話 指明要監聽的地址和介面(預設注釋掉的資訊)用空格分開,lo 表示監聽本地的主機連接埠
; hosts allow = 127. 192.168.12. 192.168.13.
做存取控制,白名單;127.表示127.0.0.1/8所在的網段,192.168.12表示192.168.12的網段
Logging Options ---------日誌選項
log file = /var/log/samba/log.%m
#表示每個訪問的主機用單獨的檔案訪問 %m表示那個主機的地址
max log size = 50
#記錄的檔案大小一旦超過這個大小就要滾動表示了,應當調大一點 51200 ;512M
Standalone Server Options --------獨立服務選項(就是我們只用來配置sambaserver的選項)
security = user
share (depricated)
server (depricated)
domain
定義安全選項為 帳號密碼登陸,帳號為系統帳號
passdb backend = tdbsam
定義密碼儲存機制 tdbsam
Browser Control Options -------- 瀏覽器控制選項
Name Resolution ----------名稱解析
Printing Options -------印表機驅動
load printers = yes
印表機驅動是否裝載
cups options = raw
同用unix列印驅動 使用raw庫
======== Share Definitions =========定義共用檔案系統
[shared_ID]有三類:
[homes]:每個samba使用者是否能夠通過samba服務訪問其家目錄;
[printers]:列印服務;
[shared_FS]:使用者自訂的共用目錄;
常用指令:
comment:注釋資訊,解釋作用;
path:本地檔案系統路徑;
browseable:是否可瀏覽,是否為使用者可見;
guest ok:是否允許來賓帳號訪問;
public:是否公開給所有來賓與上一條意義一樣;
writable:服務對所有的使用者是否可寫;
read only = no
write list:擁有寫入權限的使用者或組列表這條與上一條不能通用;
使用者名稱
@組名, +組名
三、samba使用者管理命令:smbpasswd, pdbedit
smbpasswd [OPTIONS] USERNAME 傳統命令
-h:擷取協助
-a:添加使用者進samba使用者
-x:刪除使用者
-d:禁用使用者
-e:啟用
-L:列出添加的使用者
pdbedit:
-L:列出samba服務中的所有使用者;
-au:添加使用者為samba使用者,a表示添加,u指明使用者名稱;
-x:刪除
-t:從標準輸出接收密碼;
四、訪問服務:
1、smbclient互動式用戶端程式:
(1) 查看目標服務上的共用
smbclient -L SMB_SERVER [-U USERNAME]
(2) 訪問共用服務
smbclient //SMB_SERVER[/SHARE_NAME] [-U USERNAME]
2、mount.cifs
mount -t cifs //SMB_SERVER/SHARED_ID /MOUNT_POINT -o username=USER,password=PASS
注意:掛載操作中的使用者,與-o選項中指定的使用者直接產生映射關係;訪問掛載,是以-o選項指定的使用者身份運行,與本機使用者以ID產生映射;
這裡有些小東西要記住:當用戶端主機使用者B和服務端允許的samba許可權為 讀寫 使用者A上的 識別碼一樣時會導致 B使用者會對此samba系統有讀寫權限!
前提:B使用者要對掛載的目錄有讀寫權限,且A使用者也要對共用的samba目錄也要用讀寫權限才行(就是檔案系統許可權要開放!samba服務許可權也要開放,才可以)
smbstatus命令:
顯示samba服務的相關共用的訪問狀態資訊;
-b:顯示簡要格式資訊;
-v:顯示詳細格式資訊;
自訂共用的方式:
[shared_ID]
comment =
path =
guest ok =
read only =
public =
browseable =
write list =
測試文法命令 : testparm
注意:定義所使用者在服務級的寫入權限write = yes (read only = no)不建議與write list同時使用;
實驗1:用戶端命令方式掛載
步驟1、改設定檔:
發現並不能上傳,這是因為服務端centos使用者不能對 /samba/tools 有寫入權限
步驟2、加上寫入權限