1. 程式人生 > >兄弟連Linux(二十二)--Samba服務

兄弟連Linux(二十二)--Samba服務

1Samba簡介

1.1 資料共享方法         Windows和Linux方法無法在兩個系統中通用

       Windows中最常見的是“網路上的芳鄰”。網路上的芳鄰使用的檔案系統是CIFS(通用網際網路檔案系統)協議進行資料分享           無法跨路由、無法跨網段

       Linux中最常用的是NFS服務

1.2 Samba的由來

       在1991年Andrew tridgell為了實現Unix和Windows之間檔案共享,開發了SMB(Server Message Block,服務訊息塊)檔案系統

       由於SMB無法註冊,就取名為Samba,熱情的桑巴舞

1.3 Samba與NetBIOS協議

       IBM開發的NetBIOS協議是為了區域網內少數計算機進行通訊的協議。

       Samba基於NetBIOS協議開發

       所以可以和Windows通訊,但是隻能在區域網通訊

1.4 Samba主要應用

       檔案共享

       列印伺服器

       Samba登入時身份驗證

       可以進行Windows的主機名解析

1.5 常見檔案伺服器的比較

服務名稱

適用範圍

伺服器端

客戶端

侷限性

FTP

內網和公網

Windows、Linux

Windows、Linux

無法直接在伺服器端修改資料

Samba

內網

Windows、Linux

Windows、Linux

只能在內網使用

NFS

內網和公網

Linux

Linxu

只能在Linux之間使用

2Sanba安裝與埠

2.1 安裝

       samba                                 主服務包

       samba-client                        客戶端

       samba-common                    通用工具

       samba4-libs                         庫

       samba-winbind                     Windows域對映

       samba-winbind-clients          域對映客戶端

2.2 samba的守護程序

       smbd:提供對伺服器中檔案、列印資源的共享訪問139 445

       nmbd:提供基於NetBIOS主機名稱的解析 137 138

2.3 啟動samba服務

       $ service smb start

       $ service nmb start

3Samba相關檔案

3.1 常用檔案

       /etc/samba/smb.conf      配置檔案

       /etc/samba/lmhosts         對應的NetBIOS名與主機的IP的檔案,一般samba會自動搜尋(只對本級有效)

       /etc/samba/smbpasswd    samba密碼儲存檔案,預設不存在,如果需要,手工建立

       /etc/samba/smbusers       使用者別名,用於適用於不同作業系統中使用者名稱習慣。需要配置檔案中“username map”選項支援

3.2 常用命令

       testparm         檢測配置檔案是否正確

4、配置檔案詳解

4.1 配置檔案結構

       Global Setting

              [global]          全域性設定

       Share Definitions

              [homes]          使用者目錄共享設定

              [printers]        印表機共享設定

              [myshare]       自定義名稱的共享目錄設定

4.2 Global Setting

       workgroup             所在工作組名稱

       server string           伺服器描述資訊

       log file                  日誌檔案位置

       max log size          日誌檔案的最大容量

       security                安全級別,可用值如下

              share       不需要密碼可以訪問

              user        使用系統使用者,samba密碼登入

              server      由其他伺服器提供認證

              domain    由域控制器提供認證

4.3 Share Definitions

       comment        描述資訊

       path               共享的路徑

       guest ok         允許所有人訪問,等同於public

       read only        所有人只讀

       writable          所有人可寫

       write list         擁有寫許可權的使用者列表

       browseable     是否 瀏覽 可見

       valid users      指定可以訪問的使用者

4.4 常見的變數

       %v                samba的版本號

       %s                 任意使用者都可以登入

       %m               client端的NetBIOSD主機名

       %L                伺服器端的NetBIOS主機名

       %u                當前登陸的使用者名稱

       %g                當前登入的使用者組名

5Samba基本使用

5.1 share訪問許可權

5.1.1 share基本使用

share許可權訪問

       客戶端的使用

       user級別訪問

       新增、刪除、檢視使用者

5.1.2 配置檔案修改

       [global]

              workgroup=MYGROUP

              server string=Samba Server Lamp

              log file=/var/log/samba/log.%m

              max log size=50

              security=share

              passdb backend=tdbsam

       Share Definitions

              [movie]

                     comment=study material

                     path=/study

                     browseable=yes

                     writable=yes

                     guest ok=yes

5.1.3 建立共享目錄

       $ mkdir /study       建立共性目錄

       $ chown nobody /study/

5.1.4 測試配置檔案

       $ testparm

5.1.5 重啟Samba服務

       $ service smb restart

       $ service nmb restart

5.2 客戶端的使用

5.2.1 Windwos客戶端訪問

       網路上的芳鄰訪問             

5.2.2 Linux客戶端訪問

       $ smbclient -L 192.168.44.4                檢視主機的共享資源

       $ smbclient //192.168.44.4/movie        訪問共性目錄

5.2.3 思考

       為什麼我擁有writable=yes許可權,為什麼依然無法上傳資料

5.3 user級別訪問

5.3.1 配置檔案修改

       [global]

              workgroup=MYGROUP

              server string=Samba Server Lamp

              log file=/var/log/samba/log.%m

              max log size=50

              security=user

              passdb backend=tdbsam

5.3.2 Share Definitions

       [homes]

              comment=Home Directories

              browseable=no

              writable=yes

       [pub]

              path=/public

              browseable=no(後果是什麼)

              writable=yes

              writ list=sc

5.3.3 建立共享目錄與測試配置檔案

       $ mkdir /public

       $ testparm

5.3.4 重啟Samba服務

       $ service smb restart

       $ service nmb restart

5.3.5 新增Samba使用者

       $ smbpasswd –a 系統使用者名稱                     注意,要給使用者新增samba密碼,該使用者必須已經是系統使用者

       FTP:使用系統使用者,系統密碼登入

       Samba:使用系統使用者,Samba登入

5.3.4 許可權設定

       如果要想訪問與上傳:

              Linux系統許可權需要允許

              Samba服務許可權也需要與允許

5.4 新增刪除檢視使用者

5.4.1 新增samba使用者

       注意使用者必須已經是系統使用者,才能新增為samba使用者

       $ pdbedit -a -u 系統使用者

或    $ smbpasswd –a 系統使用者名稱

5.4.2 刪除samba使用者

       $ pdbedit -x -u 系統使用者名稱

或    $ smbpasswd –x 系統使用者

5.4.3 檢視samba使用者

       $ pebedit -L

6Samba訪問實驗

6.1 Samba共享目錄許可權

系統許可權要對共享目錄生效

       Samba伺服器許可權也會對共享目錄聲響

       在實際工作中,可能的共享目錄眾多、使用者眾多、許可權交叉。建議使用系統許可權控制共享目錄許可權,而不是使用samba許可權。

6.2 舉例

6.3 Samba共享目錄

[教學]

       path=/share/jiaoxue

       browseable=yes

       writable=yes

[教務]

       path=/share/jiaowu

       browseable=yes

       writable=yes

6.4 Linux系統控制權限             ACL許可權解決複雜許可權問題

教學的許可權

       $ setfacl -m u:jx:rwx /share/jiaoxue

       $ setfacl -m u:jw:rx /share/jiaoxue

       $ setfacl -m u:xz:rx /share/jiaoxue

       $ setfacl -m u:wl:rx /share/jiaoxue

教務的許可權

       $ setfacl -m u:jw:rwx /share/jiaowu

       $ setfacl -m u:jx:rwx /share/jiaowu

       $ setfacl -m u:xz:rwx /share/jiaowu

       $ setfacl -m u:tg:rwx /share/jiaowu

7Samba其他使用

7.1 客戶端掛載到本地使用

       $ mount –t cifs –o username=使用者 原路徑 目標路徑

       例如

              $ mount –t cifs –o username=user1 //192.168.44.3pub /test

自動掛載

              $ vi /etc/fstab

              //192.168.44.3/pub /test cifs defaults,username=user1,password=126 1 2

7.2 Samba別名

       Linux的使用者如root、nobody在Window中可能對應的使用者是Administrator、guest使用者

       Samba是跨平臺的,所以用別名讓他們可以通用

別名檔案

              $ vi /etc/samba/smbusers

                     原名=別名(多個別名 空格隔開)

                     user1=lamp1

配置檔案中開啟別名

              $ vi /etc/samba/smb.conf

                     加入

                            username map=/etc/samba/smbusers

              重啟,就可以使用別名訪問samba了

7.3 總結

vsftp

       內網       外網              伺服器:W    L     客戶端:W    L

       使用者:系統使用者,系統密碼

       缺點:不能直接在伺服器上修改檔案

Samba

       內網使用                     伺服器:W    L     客戶端:W    L

       使用者:系統使用者,samba密碼

       缺點:只能在內網使用