1. 什么是samba
Samba服務類似於windows上的共享功能,可以實現在Linux上共享文件,windows上訪問,當然在Linux上也可以訪問到。
是一種在局域網上共享文件和打印機的一種通信協議,它為局域網內的不同計算機之間提供文件及打印機等資源的共享服務。
2. 安裝samb 所需要的包
yum install -y samba samba-client
3 主要配置文件/etc/samba/smb.conf 其內容
vim /etc/samba/smb.conf
在全局配置[global],將workgroup = MYGROUP 改為 wokgroup = WOKKGROUP 因為在windows下的默認工作組為WOKRGROUP
#netbios name = DEANHEHIEHEI //后面就是你在windows網絡鄰居里顯示的主機名
security = user #這里指定samba的安全等級。關於安全等級有四種:
share:用戶不需要賬戶及密碼即可登錄samba服務器
user:由提供服務的samba服務器負責檢查賬戶及密碼(默認)
server:檢查賬戶及密碼的工作由另一台windows或samba服務器負責
domain:指定windows域控制服務器來驗證用戶的賬戶及密碼。
passdb backend = tdbsam # passdb backend(用戶后台),samba有三種用戶后台:smbpasswd, tdbsam和ldapsam.
其中
(1)smbpasswd:
該方式是使用smb工具smbpasswd給系統用戶(真實用戶或者虛擬用戶)設置一個Samba密碼,客戶端就用此密碼訪問Samba資源。smbpasswd在/etc/samba中,需要手工創建該文件。
cat /etc/passwd | mksmbpasswd.sh >/etc/samba/smbpasswd
在用smbpass創建虛擬用戶,必須創建系統用戶
(2)tdbsam:
使用數據庫文件創建用戶數據庫。數據庫文件叫passdb.tdb,在/etc/samba中。passdb.tdb用戶數據庫可使用
在用smbpass創建虛擬用戶,必須創建系統用戶
smbpasswd -a 創建Samba用戶,#要創建的Samba用戶必須先是系統用戶。
也可使用pdbedit創建Samba賬戶
pdbedit參數很多,列出幾個主要的:
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用戶賬號。
(3)ldapsam:
基於LDAP賬戶管理方式驗證用戶。首先要建立LDAP服務,設置 “passdb backend = ldapsam:ldap://LDAP Server”
load printers 和 cups options 兩個參數用來設置打印機相關# 一般可以注釋掉
hosts allow = 127. 192.168.12. 192.168.13. 172.16.# 用來設置允許的主機,如果在前面加 ”;” 則表示允許所有主機
log file = /var/log/samba/%m.log #定義samba的日志,這里的%m是上面的netbios name
max log size = 50 # 指定日志的最大容量,單位是K
[homes] 該部分內容共享用戶自己的家目錄,也就是說,當用戶登錄到samba服務器上時實際上是進入到了該用戶的家目錄,用戶登陸后,共享名不是homes而是用戶自己的標識符,對於單純的文件共享的環境來說,這部分可以注視掉。
[printers] 該部分內容設置打印機共享
實驗一:要求共享一個目錄,任何人都可以訪問,即不用輸入密碼即可訪問,要求只讀
其相應的配置文件
[global]部分 MYGROUP 改為WORKGROUP
security = user 改為 security = share
[share]
comment = share all
path = /share
browseable = yes
public = yes
writable = no
再創建共享目錄:mkdir /share ; chmodt 777 /share
啟動:/etc/init.d/smb start
測試:win機器瀏覽器輸入 file://192.168.0.22/share
或者運行欄輸入: \\192.168.0.22
實驗二:共享一個目錄,使用用戶名和密碼登錄后才可以訪問,要求可以讀寫
[global]
workgroup = WORKGROUP
server string = Samba Server Version %v
security = user
passdb backend = tdbsam
load printers = yes
cups options = raw
[share]
comment = share for users
path = /share
browseable = yes
writable = yes
public = no
再創建共享目錄:mkdir /share ; chmodt 777 /share
創建系統賬號:
useradd user1
useradd user2
添加user1/user2為samba賬戶:
pdbedit -a user1
pdbedit -a user2
列出samba所有賬號: pdbedit –L
重啟服務 service smb restart
測試:瀏覽器輸入file://192.168.0.22/share
擴展:在linux 去共享samba服務的文件
(1)安裝客戶端軟件 yum install -y samba-client
命令格式:smbclient //IP/共享名 -U 用戶名
如:smbclient //127.0.0.1/share 如果是匿名訪問可以省略掉-U
進入后 可以使用 ? 查看可以使用的命令
(2)安裝文件系統 yum install –y cifs-utils
mount掛載samba目錄:mount -t cifs //192.168.176.253/share /mnt -o username=user1,password=123456
主機此時在在掛再的/mnt目錄下創建文件,發現文件權限是samb的系統用戶、用戶組
samba 常見的errors: (1)共享目錄沒有創建
(2)在你們匿名共享時,配置文件public= yes 不能寫成no
再者可以linux通過telnet 或者ssh遠程登錄samb服務端進判斷