
兩個用戶:
A1:x:1001:1002::/home/A1:/bin/sh
A2:x:1002:1002::/home/A1:/bin/sh
一組:
A1:x:1002:
FTP 伺服器:全新安裝 ProFTPd 作業系統:全新安裝 Ubuntu Server 12.04
我想在 A1 和 A2 之間共用一個資料夾 (/home/A1):
/home/A1: A1:A1 rwxrwxr-x
/home/A1/B1.txt: A1:A1 rw-rw-r--
/home/A2/B2.txt: A1:A1 rw-r--r--
我想要的是:
- B1.txt可由A1和A2修改
- B1.txt 可以由 A1 修改,但不能由 A2 修改,因此 A2 只能讀取它。
當我現在連接到FTP時,A2可以修改任何內容,但我不太明白這一點。如果我從 /home/A1 刪除群組寫入權限(因此 rwxr-xr-x),A2 無法修改任何內容。
我做錯了什麼?
答案1
上傳文件的方式是建立一個新的臨時文件並將其移動到位,而不是覆蓋現有文件。這是因為,如果在覆蓋檔案的過程中連接遺失,您將獲得一個不完整的檔案。
上傳新檔案、刪除現有檔案以及上傳現有檔案的新版本都只需要對目錄進行寫入存取。現有文件的權限(如果有)並不重要。因此A2同樣可以修改B1.txt
和B2.txt
。
如果需要不同的權限來更新這兩個文件,請將它們放在具有不同權限的不同目錄中。
如果您需要在同一目錄中使用這兩個文件,請建立B1.txt
一個符號連結到A2 具有寫入權限的目錄writable-by-A2/B1.txt
。writable-by-A2
答案2
您收到什麼錯誤訊息?
如果錯誤是“覆蓋權限被拒絕”,那麼您需要在您的系統中啟用覆蓋proftpd.conf
- 預設情況下,它被停用。
為此,請添加:
AllowOverwrite yes
到該<Global>
部分(這將允許覆蓋檔案權限允許的任何地方),或到某個<Directory /home/A1>
部分(這將允許僅在該目錄中且僅在檔案權限允許的情況下進行覆蓋)。
如果這不是錯誤訊息,請為您的問題添加更多詳細資訊 - 至少是錯誤訊息,最好是日誌摘錄。