////////////////////////////////Samba////////////////////////////////////////////
小常識:
在同一局域網中,兩個系統的工作組名稱相同,便是處於同一WorkGroup
你可以右鍵計算機屬性,選擇高級系統設置,點擊計算機名,點擊更改。
確認工作組名稱相同即可
smb.conf 主配置文件
lmhosts 對應NetBIOS name和主機名稱的IP地址,作用類似於/etc/hosts
開放端口時137.138.139端口
CIFS(Comment Internet File System ,可以理解成是網上鄰居)
Samba套件的配置文件:
https://www.samba.org/samba/docs/man/manpages/smb.conf.5.html
samba用戶密碼的幾種方式對比:
http://www.cnblogs.com/jary-wang/archive/2013/05/21/3091343.html
samba支持軟鏈接
https://fengqi.me/unix/152.html
samba中文亂碼問題
http://bbs.chinaunix.net/thread-813206-1-1.html
samba多用戶權限划分
http://blog.csdn.net/w657395940/article/details/20312053
/////////////////////////////////////////////////////////////////////////////////////
目錄
一、什么是Samba
二、安裝配置Samba
1.安裝
2.配置
3.啟動服務
4.創建用戶名
5.如何使用
6.samba實踐
/////////////////////////////////////////////////////////////////////////////////////
Samba的安裝、配置以及應用
一、什么是Samba
提供用戶登錄Samba主機時的身份認證
對Windows網絡上的主機名解析(NetBIOS Name-----Network Basic Input/Output System 通信協議)
進行設備的共享(文件/打印機)
二、安裝配置Samba
1.安裝
yum install -y samba samba-client
2.常見參數:
配置文件 smb.conf
注釋符是#
可以使用的語句;
實際都是注釋
[global]
workgroup = MYGROUP/WORKGROUP
#用來定義工作組,我們選WORKGROUP
#同一個局域網內,需要有同一個工作組
#因此生產環境中需要弄到同一工作組上
server string = Samba Server Version %v
#這是自定義的
; netbios name = MYSERVER
#主機名稱,如果沒有設置,默認的NetBIOS會以主機名替代
; interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
; hosts allow = 127. 192.168.12. 192.168.13.
#用來設置允許的主機,如果在前面加上";",則表示為允許所有主機
log file = /var/log/samba/log.%m
max log size = 50
這是日志切割用的
security = user
# user 這里指定Samba的安全等級,關於安全等級有四種:
# share 用戶不需要賬戶及密碼即可登錄Samba服務器,創建出來的文件是nobody
# user 由提供服務的Samba服務器負責檢查賬戶及密碼(默認是這個)
# server 檢查賬戶及密碼的工作由另外一台Windows或者Samba服務器負責
passdb backend = tdbsam
#密碼存儲的方式,用戶的后台
#還有smbpasswd
#以及ldapsam
encrypt password = yes
smb passwd file = /etc/samba/smbpasswd
#加密用的
; dns forwarder = 192.168.0.1
; dns proxy = yes
load printers = yes
cups options = raw
#這兩個是打印機用的
; printcap name = /etc/printcap
; printcap name = lpstat
[homes]
comment = Home Directories
這是說明,自定義的
browseable = no
writable = yes
; valid users = %S
; valid users = MYDOMAIN\%S
create mode = 0664
directory mode = 0775
[public]
; comment = Read Only Public
; path = /home/samba
; public = yes
; writable = no
; printable = no
; write list = +staff
valid users = dazuo,@caiwu,@lingdao,network02
#允許訪問的用戶
#允許訪問的group
read list = dazuo,@caiwu
#意味在read list里面的用戶(組)只有只讀權限,不管有沒有read only
read only =yes
%U 當前登陸的用戶名
%g 當前登錄用戶的群組名稱
%h 運行Samba的HOSTNAME
%H 代表用戶的主目錄
%m 代表客戶端NetBIOS主機名稱
%M 就是HOSTNAME
%L Samba主機的NetBIOS主機名稱
%I 代表客戶端的IP地址
%T 當前日期時間
%D 當前用戶所屬組名
%S 取代當前設值的參數值,也就是取代[]里面的內容
the name of the current service, if any.
3.啟動服務
service smb start
4.創建用戶名
使用smbpasswd:
smbpasswd -a 用戶名 #添加一個samba用戶
smbpasswd -d 用戶名 #禁用一個samba用戶
smbpasswd -e 用戶名 #恢復一個samba用戶
smbpasswd -x 用戶名 #刪除一個samba用戶
#要創建的Samba用戶必須是系統用戶
早期使用的是這個,現在普及用tdbsam
使用tdbsam:
建立一個用戶數據庫passdb.tdb
pdbedit -i smbpasswd:/etc/samba/smbpasswd
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用戶賬號
使用ldapsam :
基於LDAP賬戶管理方式驗證用戶,首先要建立LDAP服務,設置"passdb backend = ldapsam:ldap://LDAP Server"
高級一點用這個
5.如何使用
Linux訪問Samba共享文件:
a.安裝客戶端軟件 :yum install -y samba-client
b.使用命令smbclient訪問:
格式:smbclient //IP/共享名 -U 用戶名
如果省略掉-U,則是匿名訪問(nobody)
c.把共享文件掛在到本機:
掛載Samba目錄:mount -t cifs //192.168.0.22/myshare /mnt/ -o username=user,password=yourpasswd
umount /mnt 取消掛載
可能會bad option 需要安裝cifs的包
Windows訪問Samba共享文件:
a.在開始--運行處輸入:
\\ip\yourpath
b.瀏覽器輸入
file://192.168.0.22/myshare
6.samba實踐(均為Peer/peer模型,域模型這里不做介紹)
(1)共享一個目錄,使用用戶名和密碼登陸后才可以訪問,要求可以讀寫
配置如下:
[global] 部分內容如下
workgroup = WORKGROUP
server string = Samba Server Version %u
security = user
passdb backend = tdbsam
load printers = yes
cups options = raw
還需要加入:
[myshare]
comment = share for users
path = /samba
browseable = yes
writable = yes
public = no
創建目錄 : mkdir /samba
修改權限 : chmod 777 /samba
創建系統賬號:
useradd user1
useradd user2
添加user1/user2為samba賬戶:
pdbedit -a user1
pdbedit -a user2
重啟服務 server smb restart
測試:
瀏覽器輸入 file://192.168.0.22/myshare
或者
smbclient -Uuser1 //192.168.0.22/myshare
(2)samba同時使用匿名和用戶登錄
配置如下:
[global]
workgroup = WORKGROUP
server string = Samba Server Version %v
log file = /var/log/samba/log.%m
max log size = 50
security = user
passdb backend = tdbsam
load printers = yes
cups options = raw
map to guest = bad user
guest account = nobody
encrypt password = yes
smb passwd file = /etc/samba/smbpasswd
[public]
comment = public
path = /data/pub/public
browseable = yes
guest ok = yes
writable = yes
printable = no
create mask = 0644
directory mask =0755
[project]
comment = project
path = /data/pub/project
browseable = yes
public = no
guest ok = no
writable = yes
force user = root
printable = no
create mask = 0644
directory mask = 0755
注意,需要我們手動創建/data/pub/public 和 /data/pub/project目錄,為了順利完成試驗,需要提前修改權限777
(3)samba多用戶權限划分
見最上面的鏈接