linux下samba服務器的搭建

 一些相關的介紹:

◆samba產生背景: 

在 Client 端直接進行 ServeClient 端將 Server 所提供分享的目錄掛載進來,在Client 的機器上面就可以直接取用 Server 上的檔案資料,在linux下有NFS。在windows下有Common Internet File System, CIFS。但是他們不能實現兩大平臺之間的共享,samba的產生也是基於這樣的背景。

◆NetBIOS 通訊協議:

  NFS 是架構在 RPC Server 上面一樣, SAMBA 這個檔案系統是架構在 NetBIOS ( Network Basic Input/Output System, NetBIOS )這個通訊協議上面所開發出來的。

◆SAMBA 使用的 daemons:

SAMBA 的主要目的是讓 Linux 主機加入 Windows 的網絡系統當中來分享使用彼此的數據,而 Windows 使用的是 NetBIOS 這個通訊協議,所以說,SAMBA 主要是使用 NetBIOS over TCP/IP 的技術。

啓用的有:1.smbd :這個 daemon 的主要功能就是用來管理 SAMBA 主機分享什麼目錄、檔案與打印機等等的內容。

          2.nmbd :這個 daemon 則是用來管理羣組啦、NetBIOS name 啦等等的解析。

====================================================================================================

安裝samba:

◆rpm安裝的包有:1.samba       2.samba-client          3.samba-common

 

◆SAMBA 的執行檔:

   1.smbd 與 nmbd:即是那兩個主要的 daemons  !每次啓動 SAMBA 都會使用到的兩個執行檔!

   2.testparm:當我們設定完成了 smb.conf 這個主要設定檔之後,而想要查看一下 SAMBA 的所有設定參數與 smb.conf 的設定項目是否正確時,就需要使用這個 testparm 來查看。

  3.smbclient:當你的 Linux 主機想要藉由『網絡上的芳鄰』的功能來查看別臺計算機所分享出來的目錄與裝置時,就可以使用 smbclient 來查看啦!這個指令也可以使用在自己的 SAMBA 主機上面,用來查看是否設定成功

◆SAMBA 的相關目錄:

1./usr/share/doc/samba:這個目錄包含了 SAMBA 的所有相關的技術手冊

2./usr/share/doc/sam2./var/log/samba:這個目錄就是 SAMBA 預設的登錄文件放置目錄

3./usr/share/samba/codepages:這個目錄裏面放置的就是各個語言的支持格式

===============================================================================================================

 

◆關於變數:

 我們有看到一個比較有趣的設定是『log file = /var/log/samba/log.%m』,怎麼會有個 %m 啊?!呵呵!那個就是 SAMBA 裏面的變量值啦!在 SAMBA 當中,爲了便利使用者的設定,所以會有許多的變量值提供給系統管理員來使用,主要的變量有底下幾個:

o %S:取代目前的設定項目值,所謂的『設定項目值』就是在 [ ] 裏面的內容!舉例來說:

[homes]

valid users = %S

....

o 因爲 valid users 是允許的登入者,設定爲 %S 表示任何可登入的使用者都能夠登入的意思~今天如果 test 這個使用者登入之後,那個 [homes] 就會自動的變成了 [test] 了!這樣可以明白了嗎?! %S 的用意就是在替換掉目前 [ ] 裏面的內容啦!

o %m:代表 Client 端的 NetBIOS 主機名稱喔!例如上面案例的登錄檔!

o %M:代表 Client 端的 Internet 主機名稱喔!就是 HOSTNAME。

o %L:代表 SAMBA 主機的 NetBIOS 主機名稱。

o %H:代表使用者的家目錄。

o %U:代表目前登入的使用者的使用者名稱

o %g:代表登入的使用者的羣組名稱。

o %h:代表目前這部 SAMBA 主機的 HOSTNAME 喔!注意是 hostname 不是 NetBIOS name 喔!

o %I:代表 Client 的 IP 咯。

 

◆smb.conf的具體配置不詳釋,因爲不同版本會不同。

◆測試 smb.conf 設定值:

  testparm 可以用來察看所有 SAMBA 的屬性, # 這些屬性很多都是默認值!如果沒有 smb.conf 裏面設定時,就是默認值

◆Client 端的測試:

  smbclient 指令可以用來(1)查詢某部主機的分享內容與(2)登入某部主機進行數據的存取!更詳的用法我們會在底下說明!在上面的案例下,我們使用 -L 這個參數,去察看主機名稱(注意,這裏是以 netbios name 爲主機名稱喔!)分享出來的數據有哪些。

==============================================================================================

◆如何設定每個人要使用的家目錄:

[homes]

comment = Home Directories

browseable = no

writable = yes

valid users = %S

create mode = 0664

directory mode = 0775

 create mode 指的是新建立檔案的權限,而 directory mode 則是新建目錄的權限 至於 valid users 則是有權限進入者,這裏設定爲 %S 喔!所以,  每個使用者就可以進入自己的家目錄了!  

 

  重點只有在於 security = user 以及 encrypt passwords 與 smb passwd file 這三行!有了這三行,  SAMBA 就需要去查詢使用者要登入時的賬號與密碼了。同時,請注意在 [homes] 裏面的設定當中,有一個 valid users  。這個 valid users 指的是: 能夠登入這個目錄的使用者是誰?

◆設定使用者賬號與密碼:

  我們需要透過 SAMBA 所提供的功能來進行 Linux 的存取,而 Linux 的存取是需要取得 Linux 系統上面的 UID 與 GID 的,因此,我們登入 SAMBA 主機時,所利用 SAMBA 取得的其實是 Linux 系統裏面的相關賬號!這也就是說,在 SAMBA 上面的使用者賬號,必須要是 Linux 賬號中的一個。

# smbpasswd -a bird

New SMB password: <==在這裏輸入 bird 的密碼

Retype new SMB password: <==再輸入一遍 bird 的密碼

Added user bird.

# 請特別留意, SAMBA 的密碼是放在 /etc/samba/smbpasswd 這個檔案內,當然, 您可以更改這個檔名 (在 smb.conf 裏面改),但是, Linux 系統的賬號密碼 # 是放在 /etc/shadow ,這也就是說, SAMBA 服務器的密碼與 Linux 底下的 賬號密碼並不一定要相同的。

-a : 在 smbpasswd 密碼文件裏面新增一個使用者

-d : 讓在 smbpasswd 密碼文件裏面的某個賬號的使用者暫時無法使用 SAMBA 當多了 -d 的參數時,在 smbpasswd 裏面某個字段會多出一個 D 的參數, 代表該賬號目前無法使用喔!

-e : 與 -d 參數相反,讓某個賬號恢復使用!

-m : 該 username 爲機器代碼(Machine Account),這個與 domain model 有關!

◆當然這些只是簡單的設定,samba還可以在大型的網絡中使用,還可以共享打印功能,這裏沒有說明了。詳見鳥哥私房菜。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章