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產生映射;
這里有些小東西要記?。寒斂蛻舳酥鳈C用戶B和服務端允許的samba權限為 讀寫 用戶A上的 ID 號一樣時會導致 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、加上寫權限
步驟3、成功
原創文章,作者:qzx,如若轉載,請注明出處:http://www.www58058.com/52842