[RHCE] Share File

SHARE

在早期的網路世界中,分享檔案的方法大都是經由FTP進行傳輸的工作。但是對於檔案的分享而言,FTP卻存在著一些不便的地方。當使用者需要變更遠端的一份文件,必須先用FTP下載,變更之後再上傳。這樣的傳輸就比較像單方面的傳輸,而不是雙向的分享。

所以,有鑑於此Unix就推出NFS(Network File System)。而Windows系統也推出了CIFS(Common Internet File System)。兩種檔案系統可以將遠端的檔案系統掛載到用戶端的主機,使用者就像在本地主機存取檔案一樣。不必在經過反覆的上傳與下載,這樣的動作就是我們現在常說的分享。然而NFS只能用於Unix主機,CIFS只能用於Windows主機。所以後來就發展出SAMBA,使得Unix系統與Windows系統之間可以相互分享檔案。
1330344993-2915894889.jpg-RHCE檔案分享

NFS

NFS Server需安裝套件nfs-file-server,安裝後可於/etc/exports設定分享的檔案系統。例如,寫入/var/ftp/pub 192.168.0.0/24 (ro, sync)。表示分享/var/ftp/pub給192.168.0.0/24網段,(ro, sync)為參數。或者/exports/home *.example.com (rw, sync)。表示分享/exports/home給example.com網域,參數為(rw, sync)。設定完成之後,輸入 #exports -r 可以使系統載入新設定。#exprots -v 可以列出目前所有的分享狀況,便於管理者檢查設定是否無誤。

掛載NFS常見的參數有以下:
rw, ro: 目錄分享的權限是可讀寫(rw)或唯讀(ro),然而仍然需要遵守檔案系統的權限與身分。
sync, async: sync代表資料會同時寫入記憶體與硬碟,async代表資料會先暫存於記憶體。
root_squash: root_squash會將用戶端root的身份會壓縮成nfsnobody(預設)。
no_root_squash: 開放用戶端以root身分進行操作。
all_squash: 用戶端身分一率壓縮成nfsnobody。
anonuid, anongid: 用戶端使用nfsnobody登入時的UID與GID。

用戶端可以輸入 #showmount -e [NFS Server] 顯示目前伺服器端開放的檔案系統。然後輸入 #mount -t nfs [Server]:/[Share File System] [Mount Point] 手動掛載。NFS也可以設定開機自動掛載,於/etc/fstab中加入:[NFS Server]:/[Share File System] [Mount Point] nfs defaults 0 0

CIFS

Unix系統若需要掛載CIFS,需安裝Samba套件。Samba套件使用的port為137、138、139、以及加密port 145。Samba主要設定檔於/etc/samba/smb.conf,分為[Gobal]、[Home]、[Printers]、以及自訂。[Gobal]為伺服器設定,其內容為以下:
Workgroup: 工作群組名稱。
NetBIOS: 顯示於網路上的主機名稱。
Interfaces: 使用的網卡以及IP位置。
Hosts Allow: 允許連結的網段。
Security: 安全等級,分為Share、User、Server、Domain、以及Ads。

[Home]為使用者家目錄,需要User以上等級才可開放。
1335613923-3043588988.jpg-RHCE檔案分享

[Printers]為印表機設定。
1335613948-1915057751.jpg-RHCE檔案分享

自訂分享目錄可於括號內設定分享名稱,用戶端需以此名稱連結。
1335613973-4279904649.jpg-RHCE檔案分享

而其他設定分別為以下:
Comment: 此分享目錄的說明。
Path: 分享目錄的路徑。
Public: 是否公開。
Writable: 是否可寫入。
Browseable: 是否可瀏覽。

Samba的使用者需為已存在於系統的使用者,在將其建立為Samba的使用者。使用 #smbpasswd -a [username] 即可新增Samba使用者。要開放Samba需開啟SELinux權限,使用 #getsebool -a | grep samba 查詢。會發現相關權限為enable_home_dir與export_all_rw。輸入 #setsebool -P enable_home_dir on#setsebool -P export_all_rw on 。設定完成後可用 #smbclient -L //[Server]/[Share Name] -N 測試可否登入。或利用 #testparm 指令測試是否可由指定IP連入: #testparm /etc/samba/smb.conf [Hosts Name] [Hosts IP]

用戶端可使用以下指令進行手動掛載:#mount -t cifs -o user=[username] //[Server]/[Share Name] [Mount Point],或者編輯/etc/fstab自動掛載,需於/etc/fstab加入://[Samba Server]/[Shaer Name] [Mount Point] cifs credentials=[File Name] 0 0,credentials為指定存放登入帳號密碼的檔案的位址,此檔案內容為:
User=[User Name]
Pass=[Password]

AUTOFS

Autofs可讓使用者自動掛載網路上所分享的檔案系統的一種服務。其相關設定於/etc/sysconfig/autofs,其中需比較注意的為Timeout的時間設定。使用Autofs須先設定掛載點的參考檔,一般會編輯一個/etc/auto.[自訂檔名]的檔案。其內容為[本機掛載點子目錄] [權限] [分享的檔案系統來源]:[分享的檔案系統目錄]。之後在於/etc/auto.master中將參考檔寫入:[本機掛載點] [參考檔位置]。這樣掛載的檔案系統就會位於[掛載點]/[掛載點子目錄]之中。設定完成之後需將Autofs服務關閉再開啟,不可使用restart。

留言