1. 程式人生 > >Samba文件共享服務

Samba文件共享服務

linux samba服務器 楊書凡 smbclient訪問共享 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文件共享服務