Samba文件共享服務
一、Samba軟件的組成
SMB(Server Message Block,服務消息塊)是著名的開源軟件項目之一,它在Linux/UNIX系統中實現了微軟SMB/CIFS網絡協議,從而使得跨平臺的文件共享變得更加容易
CIFS 協議(Common Internet File System,通用互聯網文件系統)
Samba 服務器的主要程序
smbd:提供對服務器中文件、打印資源的共享訪問,端口tcp 139 445
nmbd:提供基於 NetBIOS 主機名稱的解析,端口udp 137 138
Samba 的配置目錄及文件
Samba服務的配置文件位於/etc/samba/目錄中,其中smb.conf是主配置文件
以 # 號開頭的行表示註釋性文字
以 ; 號開頭的行表示配置樣例
[global]:全局設置
[homes]:用戶目錄共享設置
[printers]:打印機共享設置
[自定義]:自定義名稱的共享目錄設置
二、構建文件共享服務器
1.可匿名訪問的共享
適用於公開的資源共享,一般只建議提供只讀訪問,不需要密碼,在安全性不高的情況下,可方便、快捷的與其他主機共享資源
例如:公司需要配置一臺文件服務器,需要建立一個public目錄,存放公共數據,如公司的規章制度、員工手冊等,允許所有員工訪問,但只有讀取權限
# mount /dev/cdrom /media
# rpm -ivh /media/Packages/samba-3.6.9-164.e16.x86_64
# mkdir /public
# vim /etc/samba/smb.conf
[global]
workgroup=WORKGROUP //Windows主機默認工作組
security=share //允許匿名訪問
[公共目錄]
comment=註釋
path=/public //共享文件夾路徑
public=yes //是否所有人都可訪問共享目錄
read only=yes //共享文件是否只讀
# service smb start //開啟Samba服務
配置完成,可以從Windows客戶機或Linux客戶機中瀏覽並匿名訪問此文件了
2.需要用戶驗證的共享
設置用戶驗證的共享文件夾時,除了需要改smb.conf配置文件,還要先創建授權的共享賬戶
(1)建立Samba用戶數據庫
Samba共享用戶的賬號數據庫文件默認位於 /var/lib/samba/private/passdb.tdb,是一個經過加密的文件,保存了Samba用戶的賬號、密碼、狀態等信息
a.創建Samba共享用戶
例如:將用戶yangshufan添加到Samba共享用戶
b.查看Samba共享用戶
# pdbedit -L //列出所有Samba用戶
# pdbedit -vL yangshufan //只列出yangshufan用戶,輸出詳細信息
c.刪除Samba共享用戶
# pdbedit -x -u yangshufan
(2)設置用戶訪問授權
當授權多個用戶是,用逗號或空格進行分隔;授權用戶組時,[email protected]
例如:將本地目錄/share發布為共享文件夾,要求共享用戶yangshufan、51cto能訪問,其中yangshufan用戶具有寫入權限
# mkdir /share
# vim /etc/samba/smb.conf
[global]
security=user //需本服務器驗證用戶名及密碼
[共享]
comment=註釋
path=/share
public=no
read only=yes
valid users= yangshufan,51cto //只有哪些用戶可登陸
write list= yangshufan //只有哪些用戶可寫
# service smb reload
(3)確定目錄訪問授權
共享用戶最終是否擁有讀取、寫入權限,除了設置用戶授權外,還需要共享的本地文件夾必須有相應的讀取、寫入權限
例如:為了方便,可將/share文件夾的權限設置為777
# chmod 777 /share
共享用戶所上傳的文件、創建的子目錄的默認權限可分別修改以下配置項
例如:用戶訪問共享文件時,所上傳的目錄默認權限為755,文件的默認權限為644
# vim /etc/samba/smb.conf
[共享]
directory mask=0755 //文件夾權限
create mask=0644 //文件權限
3.用戶映射及訪問地址限制
為了進一步提高Samba共享服務的安全性,除了可以對指定的共享目錄設置用戶權限以外,還可以采用用戶映射、訪問地址限制等措施
(1)共享賬戶映射(別名)
共享賬戶的映射文件默認位於 /etc/samba/smbusers
例如:為現有Samba共享用戶yangshufan指定兩個別名yyy、sss
# vim /etc/samba/smbusers
yangshufan= yyy sss
# vim /etc/samba/smb.conf
[global]
username map= /etc/samba/smbusers
# service smb reload
(2)訪問地址限制
一般用於[global]全局配置模式,下面兩種方式任選其一
hosts allow 配置項:僅允許特定的客戶機
hosts deny 配置項:僅拒絕特定的客戶機
例如:僅允許來著192.168.1.0/24、172.16.0.0/16網段的客戶機訪問Samba服務器
# vim /etc/samba/smb.conf
[global]
hosts allow=192.168.1. 172.16.
# service smb reload
三、在Linux客戶機訪問共享文件夾
1.使用smbclient訪問共享文件夾
(1)查詢目標主機的共享資源列表
例如:匿名查詢Samba服務器192.168.1.1中提供的共享資源列表
# smbclient -L 192.168.1.1
(2)登陸並訪問共享文件夾
例如:登陸Samba服務器後,下載文件aaa、上傳文件bbb
# smbclient -U yangshufan //192.168.1.1/共享
smb: \> pwd //查看當前工作路徑
smb: \> ls //列出當前目錄下的內容
smb: \> lcd /root/ //將本地目錄切換到/root/
smb: \> cd share/ //切換到共享目錄的share子目錄
smb: \share\> mget aaa //下載文件aaa
smb: \share\> mput bbb //上傳文件bbb
smb: \share\> quit //退出共享目錄
2.使用mount掛載共享文件夾
例如:將Samba服務器192.168.1.1的共享文件夾掛載到本地的/media/smbdir文件夾,以共享yangshufan進行驗證
# mkdir /media/smbdir
# mount -o username=yangshufan //192.168.1.1/共享 /media/smbdir
掛載成功後,可以對Samba服務器的訪問權限進行測試,根據上面的配置,yangshufan用戶對共享目錄具有寫入權限,所上傳的目錄默認權限為755,文件的默認權限為644
# cd /media/smbdir //切換到掛載點
# mkdir mydir //創建測試文件夾
# touch myfile //創建測試文件
# ls -ld my* //驗證所創建的目錄、文件的權限
drwxr-xr-x 2 505 505 8月2 12:12 mydir
-rw-r--r-- 2 505 505 8月2 12:13 myfile
本文出自 “楊書凡” 博客,請務必保留此出處http://yangshufan.blog.51cto.com/13004230/1952957
Samba文件共享服務