跳至主要内容

跨帳號分享 HFS 檔案

此篇文章教學如何在不同帳號之間互相分享 HFS 檔案,您可以:

  1. 上傳並透過 TWSC COS 分享
    • 其他用戶空間藉由檔案 URL 下載至其空間
    • 其他用戶可將 COS 掛載方式存取 (共享資料夾、網路硬碟)
  2. 開放 HFS 檔案權限

請參考以下步驟操作,步驟區分「分享者」如何分享檔案與「其他用戶」如何存取檔案:

1. 上傳並透過 TWSC COS 分享檔案

Step 1. 將檔案上傳至 TWSC COS (分享者)

分享者可透過 S3 用戶端工具或掛載 COS 的方式,將 HFS 檔案上傳至 COS;或 將 HFS 檔案備份/同步至 COS

後續步驟區分以下兩種方式進行:

其他用戶空間藉由檔案 URL 下載至其空間
Step 2. 取得檔案 URL (分享者)

透過第三方軟體取得檔案 URL,並將 URL 分享給其他使用者

(以下以 Cyberduck 為操作範例)

Step 3. 將檔案下載自其空間 (其他用戶)

自分享者取得檔案 URL後,輸入以下 wgwt 指令即可將檔案下載至其空間 (台灣杉二號 (命令列介面)、虛擬運算個體或容器)

& wget <COS file URL> 
其他用戶可將 COS 掛載方式存取 (共享資料夾、網路硬碟)
Step 2. 將 COS 掛載至 TWNIA2 (其他用戶)

其他用戶請參考 此篇文章 將分享者的 COS 儲存體視為網路硬碟或共享資料夾,掛載至您的 TWNIA2 (登入節點)或虛擬運算個體後,即可存取使用。

2. 開放 HFS 檔案權限

以下利用檔案系統支援的 ACL (Access-control list) 進行 HFS 檔案/目錄 權限開放設定,分享者可透過登入台灣杉二號 (命令列介面) 輸入指令操作。

警告
  • 此為進階分享方法,設定錯誤容易造成資料外洩。考量資安問題,較建議您使用上述方法,透過 COS 分享檔案。
  • 此方法僅開放檔案權限,非轉移檔案。因此開放權限後,檔案容量仍佔用分享者的儲存空間。
  • 請先連線進入登入節點,以執行開放檔案權限設定。
信息

參考資料:國網中心

UNIX 檔案權限說明

使用 ls -l 指令,可以檢視檔案的資訊,其中第一欄表示 Owner、Group、Other (非 Owner 或 Group) 對於該檔案/目錄,所具有的權限,舉例:-rw-r--r--,說明如下:

第 1 欄第 2~4 欄第 5~7 欄第 8~10 欄
-:檔案 (d: 目錄)Owner 具 r、w、x 權限Group 具 r 權限Other 具 r 權限

設定 ACL 權限

setfacl [-bkRd] [{-m|-x} ACL參數] 目標檔名

指令

  • setfacl:設定/移除 檔案/目錄 的 ACL 權限

參數

  • -m :設定後續的 ACL 參數給檔案使用,不可與 -x 合用;
  • -x :刪除後續的 ACL 參數,不可與 -m 合用;
  • -b :移除『所有的』 ACL 參數;
  • -k :移除『預設的』 ACL 參數,關於所謂的『預設』參數於後續範例中介紹;
  • -R :遞迴設定 ACL,亦即包括次目錄都會一同設定;
  • -d :設定『預設 ACL 參數』。只對目錄有效,在該目錄新建的資料會引用此預設值

使用者、群組

  • -u:對特定使用者設定權限 (後接主機帳號)
  • -g:對所有特定計畫成員設定權限 (後接計畫代碼)

權限種類

  • r:讀取權限
  • w:修改、寫入權限
  • x執行某檔案 或 進入某目錄` 的權限

操作範例

1. 設定 檔案/目錄 ACL 權限 (分享者)

  • 分享「檔案」之 讀取修改 權限給指定主機帳號
setfacl -m u:<主機帳號>:rw <目標檔案>
  • 分享「主機帳號的家目錄」讀取執行 權限至指定計畫群組
setfacl -m g:<計畫代碼>:rx /home/<主機帳號>
信息

由於開啟資料夾需要執行權限,故需要加入執行權限 x 參數。

2. 確認檔案已設定 ACL 權限 (分享者)

  • 若權限設定成功,權限欄位將會出現+
ls -ald /path/<目標檔案 or 目錄> 

3. 檢視檔案/目錄 ACL 權限 (分享者)

getfacl <目標檔案 or 目錄>

輸入後您將會取得以下檔案/目錄的權限資訊:

# file: path/file
# owner: <檔案擁有者主機帳號>
# group: <檔案擁有者初始計畫代碼>
user::rwx
user:<主機帳號>:rwx (給予目標主機帳號的權限)
group::---
group:<計畫代碼>:r-x (給予目標計畫的權限)
mask::r-x
other::---

4. 存取檔案 (其他用戶)

其他用戶於指令列 cd 至分享者的主機帳號,即可存取開啟權限的檔案與目錄

cd <分享者主機帳號> 

5. 移除檔案/目錄 ACL 權限 (分享者)

若檔案、目錄不再分享,執行以下指令即可移除檔案/目錄所有的權限

setfacl -b <目標檔案 or 目錄>