[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系統之間可以相互分享檔案。
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以上等級才可開放。
[Printers]為印表機設定。
自訂分享目錄可於括號內設定分享名稱,用戶端需以此名稱連結。
而其他設定分別為以下:
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]
留言
張貼留言