SAMBA 最初發展的主要目就是要用來溝通Windows 與 Unix Like 這兩個不同的作業平臺。最大的好處就是不必讓同樣的一份數據放置在不同的地方,而且也可以透過這樣的一個檔案系統上Linux 與 Windows 的檔案傳輸變得更爲簡單!也就是說,可以透過『網絡上的芳鄰』來進行Linux 與 Windows 檔案的傳輸。
smb協議:服務信息塊 Server Message Block
安裝完samba後形成兩個服務:
smbd : tcp 139 445 端口 資源共享,連接控制
nmbd: udp 137 138 端口 資源宣告
samba命令:
testparm:當設定完成了smb.conf 這個主要設定檔之後,而想要查看一下 SAMBA 的所有設定參數與 smb.conf的設定項目是否正確時,就需要使用這個 testparm 來查看( test parameters 的簡寫!)!所以,每次在修改完 smb.conf之後,請務必要使用 testparm 查看看是否有設定錯誤。使用方法:# testparm
smbpasswd:如果SAMBA 設定的較爲嚴格,需要規定使用者的賬號與密碼,那麼那個密碼檔案的建立就需要使用smbpasswd 來建置纔可以,所以這個指令與建立 SAMBA 的密碼有關。smbpasswd -a user1 (user1 要在系統中存在,也就是必須存在user1賬戶)
smbclient:當Linux 主機想要藉由『網絡上的芳鄰』的功能來查看別臺計算機所分享出來的目錄與裝置時,就可以使用smbclient 來查看啦!這個指令也可以使用在 SAMBA 主機上面,用來查看是否設定成功。smbclient //192.168.101.250/zs -U zhangsan
1.新建掛載點,掛載光盤
[root@localhost ~]# mkdir /mnt/cdrom
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom
2.實現samba需要的軟件包
[root@localhost Server]# ll sam*
samba-3.0.33-3.14.el5.i386.rpm samba服務器主程序包
samba-client-3.0.33-3.14.el5.i386.rpm 實現客戶端的軟件包(默認已安裝)
samba-common-3.0.33-3.14.el5.i386.rpm 用於產生samba的配置文件 (默認已安裝)
samba-swat-3.0.33-3.14.el5.i386.rpm 通過web 頁面管理samba
3.安裝samba服務器端:
[root@localhost Server]# rpm -ivh perl-Convert-ASN1-0.20-1.1.noarch.rpm
[root@localhost Server]# rpm -ivh samba-3.0.33-3.14.el5.i386.rpm
4.查看samba的工具:
[root@localhost Server]# rpm -ql samba-common|less
/usr/bin/smbpasswd 用於產生samba賬號數據庫
/usr/bin/testparm 語法測試工具
5.配置文件
[root@localhost Server]# vim /etc/samba/smb.conf
interfaces = lo 192.168.101.250/24 若服務器有多塊網卡,只可以訪問列出的ip
爲網卡再設置一個ip:
再次訪問,仍然能夠訪問:
bind interfaces only=yes 綁定接口,配合上條命令使用,否則限制不能生效
192.168.101.251將無法訪問
hosts allow = 127. 192.168.168.101.13 限制來源
當有客戶端訪問時,將爲該客戶端產生一個ip日誌和主機名日誌
samba的安全級別:
share: 不用驗證
user :需要身份驗證,需要samba賬號庫
server :需要其他服務器進行身份驗證
domain :域 DC進行驗證
Browser Control Options
瀏覽器:幾臺samba服務器進行選舉,級別最高的走位瀏覽器,存放服務器 列表,當其他成員加入時,出示該列表。
local master = no 是否最爲瀏覽器
os level = 33 級別
preferred master = yes 自己加入後,是否重新選舉
舉例:
共享名 路徑 權限
public /abc 任何人 ro
zs /zhangsan zhangsan rw
ls /lisi lisi rw
編輯 /etc/samba/smb.conf
[public]
comment = public directory
path = /abc
browseable = yes
guest ok = yes
writable = no
printable = no
[zs]
comment = zhangsan directory
path = /zhangsan
browseable = yes
guest ok = no
writable = yes
valid users = zhangsan
printable = no
[ls]
comment = lisi directory
path = /lisi
browseable = yes
guest ok = no
writable = yes
valid users = lisi
分別創建目錄和各自目錄內的文件:
/abc /zhangsan /lisi
創建賬號 zhangsan lisi
分別修改 /zhangsan /lisi 目錄的所有者,所屬組爲zhangsan lisi
[root@localhost lisi]# chown -R zhangsan:zhangsan /zhangsan
[root@localhost lisi]# chown -R lisi:lisi /lisi
增加samba 賬號數據庫
[root@localhost /]# smbpasswd -a zhangsan
[root@localhost /]# smbpasswd -a lisi
賬戶zhangsan訪問共享文件
賬戶lisi訪問共享文件
linux samba 客戶端訪問linux samba 服務器
列出共享的文件列表
[root@localhost ~]# smbclient -L //192.168.101.250 -U zhangsan
連接samba服務器
[root@localhost ~]# smbclient //192.168.101.250/zs -U zhangsan
手動掛載,將samba服務器的共享目錄掛載到掛載點上。
在客戶端上新建掛載點
[root@localhost ~]# mkdir /mnt/smb
[root@localhost ~]# mount -t cifs //192.168.101.250/zs /mnt/smb/ -o username=zhangsan%zhangsan (%後爲密碼)
或
[root@localhost ~]# mount -t cifs //192.168.101.250/zs /mnt/smb/ -o username=zhangsan
也可以編輯文件系統表fstab,開機
或
由於/etc/fstab文件對所有用戶可見,所有能夠查看到掛載的用戶名和密碼不安全。可以將用戶名密碼寫入一個普通文件,再將該文件設置爲對其他用戶不可見。
//192.168.101.250/zs /mnt/smb cifs defaults,credentials=/etc/samba/f1.txt 0 0
創建文件/etc/samba/f1.txt
[root@localhost ~]# vim /etc/samba/f1.txt
username=zhangsan
password=zhangsan
執行命令mount -a 自動掛載文件系統表,或者重啓系統
[root@localhost ~]# mount -a
使用mount命令查看是否掛載
修改/etc/samba/f1.txt 的權限爲600
[root@localhost samba]# chmod 600 /etc/samba/f1.txt
自動掛載
這樣掛載可以隱藏用戶名和密碼,但是如果客戶端開機掛載後,而沒有使用,則將一直和samba服務器相連,消耗服務器資源,因此,可以使用自動掛載,當切換到/mnt/smb下時,自動掛載,退出時,自動取消掛載。
自動掛載
1.編輯/etc/auto.master
[root@localhost ~]# vim /etc/auto.master
當訪問/mnt/smb下的文件夾時,查看/etc/auto.smb 的配置,當退出/mnt/smb後60 秒,自動取消連接
2.創建auto.samba文件
[root@localhost ~]# cp /etc/auto.misc /etc/auto.samba
[root@localhost ~]# vim /etc/auto.samba
3.vim /etc/auto.samba
server1 -fstype=cifs,username=zhangsan,password=zhangsan ://192.168.101.250/zs
4.重啓autofs 服務
自動掛載成功