我們從 Windows 上面 , 可以點選 "網路上的芳鄰" 來瀏覽別台 Windows 電腦分享出來的檔案和資料夾或列表機 , 那 Linux 上面是不是有什麼服務也可以讓 Windows 用戶端從 "網路上的芳鄰" 來取用 Linux 上分享出來的資源呢 ?
那就是 Samba 伺服器了 .
下面用 Fedora Linux Core 8 來說明其安裝及設定方式 ,
FC8 內建的是 Samba-3.0.26a-6.fc8 這個版本 .
安裝:
-
若是在安裝系統時要選擇加入 Samba , 請在套件選擇的頁面 ,
勾選 "伺服器" ==> "Windows 檔案伺服器" .
-
如果系統已經裝好 , 事後才要加裝 Samba 的話 , 請放入安裝光碟 ,
執行 :
mount /dev/cdrom /media
cd /media/Packages
rpm -Uvh Samba-3.0.26a-6.fc8.i386.rpm
rpm -Uvh Samba-common-3.0.26a-6.fc8.i386.rpm
-
如果系統可以連上 Internet 的話 , 也可以用 Yum 來安裝
執行 :
yum install samba samba-common
( Yum 會下載系統合用的最新版本 , 所以版本號可能會有些不同 )
啟動 , 停止 , 重新啟動:
舊版的時候是啟動 Samba , 它會自動幫我們啟動 samba 用的二個服務 ,
這一版則是分開來 , 請執行 :
啟動
service smb start
service nmb start
停止
service smb stop
service nmb stop
重新啟動
service smb restart
service nmb restart
設定:
Samba 的主要設定檔為 /etc/samba/smb.conf
下面列出幾個簡單常用的參數 , 其它就得花點時間 , 查查 man 囉 !
設定檔中 , 分為兩大部份 , Global Settings 及 Share Definitions ,
就是整體的設定及分享資料夾的定義 .
# ================ Global Settings =====================
workgroup = mygroup
# 就是 Windows 中的工作群組或 Domain 的意思 .
server string = Samba Server Version %v
# 這台主機的描述 , 就是網路芳鄰中看到的名字 . 最後的 '%v' 是變數 , 其值是 Samba 的版本 .
netbios name = FEDORA8
# 就是 NetBios Name 囉 ! 在網路芳鄰中看到的是電腦名字後面 () 的文字 .
hosts allow = 127. 192.168.12. 192.168.13.
# 設定那些 Client 可以連上來 .
dos charset = cp950
# Client 系統所採用的語言編碼 , cp950 是指 Big5 繁體中文碼 , 目前的 Windows 都是用 Big5 .
# 此參數預設未寫在設定檔內 , 請自行新增在 Global 段落 .
security = user
# 認証採用的方式 , user 就是要使用者認証 , share 就是不用認証 .
server , domain 則是密碼在別台主機上 .
# ================ Share Definitions =====================
# 以下就是要分享的資料夾的相關設定 , 每個資料夾設定皆以 [分享名稱] 為開頭 ,
# 可分別依據不同須求設定其存取權 .
[Doc Data] # 分享一個資料夾 , 在網路芳鄰中看到的名稱為 'Doc Data' .
comment = Doc Directories # 這個資料夾的說明 .
path = /data # 這個資料夾在系統中的絕對路徑 .
browseable = yes # 設定是否可瀏覽這個資料夾內容 .
public = yes # 設定是否看得到這個資料夾 .
writable = yes # 設定資料夾內是否可執行寫入的動作 .
read only = no # 設定這個資料夾是否為 "唯讀" .
valid users = user-name # 設定誰可以進入這個資料夾 .
valid users = @group-name # 設定哪一個使用者群組可以進入這個資料夾 .
guest ok = yes # 可用訪客帳號登入
以上各參數不一定要全部都設定 , 也還有更多的參數這裡未列出來 ,
詳細參數說明 , 請問那個男人 .............( man smb.conf )
註 : 要注意的是 , 就算在 Samba 中設定某一分享資料夾是可寫入 , 但系統中這個資料夾的權限沒有相對開出來的話 , 使用者則還是一樣無法在資料夾中寫入資料 .
================= End ==================================
設定好了以後 , 可以執行 tespparm 這個指令 ,
它會幫我們檢查 smb.conf 檔是否有設定錯誤 , 然後它會顯示我們設定的參數列表 .
可以執行 testparm -v 這個指令 , 它除了會檢查是否錯誤及列出我們設定的參數 ,
還會把我們沒有設定到 , 但預設會執行的參數一並列出 .
================= User Password =========================
如果設定的 Samba Server 是需要做使用者認証 ,
就是上面參數 security = user , 而不是 security = share .
那就一定要為 Samba 建立起使用者帳號管理 .
Samba 的使用者必為系統使用者 ,
但系統使用者不一定都可使用 Samba .......................................說啥~!?
譬如 : 要讓 user 這個人可以從 Windows 網路芳鄰存取 samba 分享的資料夾 ,
就必須在 Linux 上先建立 user 帳號 , 然後再建立 user 在 samba 上的帳號 .
若 user2 只能收 Linux 上的信但不能使用 samba ,
就只要在 Linux 上建立 user2 帳號即可 .
Samba 2 版以前的帳號管理是用 smbpasswd , 密碼檔為文字檔 , 使用者多的話 , 效率較差 .
Samba 3 版的使用者帳號管理預設是使用後端 tdbsam 資料庫管理機制 .
管理 Samba 使用者是用 pdbedit 這個指令 , 參數满多 ,
下面提列幾個簡單常用的參數 : (詳細使用方式請參考 man pdbedit)
pdbedit -L # 列出使用者列表 .
pdbedit -Lv # 列出詳細的使用者列表 .
pdbedit -Lw # 列出同 smbpasswd 格式的使用者列表 .
pdbedit -a user # 新增 user 這個帳號 .
pdbedit -x user # 刪除 user 這個帳號 .
pdbedit -c "[D]" -u user # 暫時停用 user 這個帳號 .
pdbedit -c "[]" -u user # 恢復使用 user 這個帳號 .
沒有留言:
張貼留言