普通使用者共享、讀寫、照片目錄樹
即我想要的是 Windows 的 Linux 等價物
Public/Pictures
。問題是當您將文件移動到文件夾/目錄(也不是舊的 set-group-id)**時,Linux 文件管理器 Nautilus 不會應用預設 ACL 。**即使在預期的情況下,文件一次只在一個目錄中,即它還沒有被硬連結到另一個目錄中。
因此,即使使用預設 ACL,也無法從插入的相機中拖動照片。其他使用者將能夠閱讀照片,但他們將無法寫入照片。它們在文件管理器中顯示為帶有掛鎖。
有趣的是,在這種情況下它沒有使用
rename()
,因為移動跨越了文件系統。在這種情況下,Nautilus 只是通過從源文件 :trollface: 重新應用權限來提供一致的語義。不幸的是,在厭倦了指導其他使用者如何使用 Digikam 之後,我記起來太晚了。 (Digikam 工作,因為從卡中刪除照片是一個單獨的操作。所以照片必須複製,而不是移動)。我指示他們寫下關於使用文件管理器的說明。嘆。
所以我知道這不是預期的用途,即多使用者電腦並沒有真正得到滿足。但是有什麼明智的方法可以為我的其他使用者設置這個嗎?
我打折任何比文件管理器更難讓人們記住的方法(大約一個月)。不包括 Digikam;它有太多無意義的選擇,然後在從卡中刪除圖像之前要求確認,好像整個操作充滿了危險。(同樣不幸的是,使用我們的軟體,我們會看到“使用 Digikam 導入照片”彈出視窗不起作用)。
我還排除了任何無法將專輯名稱(包括日期)保存到文件系統的照片管理器。如果你不能導出到Digikam,那麼你就不夠信任讓我從Digikam導入!
環境:
- Linux
- Debian
- 標準 GNOME 桌面
我忘記了別的東西。如果我無法寫入文件,我仍然可以刪除並替換它。 這正是保存文件的正確方法。(因為你必須
fsync()
在你擁有一個持久文件之前,你可以安全地用它替換舊文件)。它似乎工作正常,你只需要忽略掛鎖:)。例如,我可以旋轉其他使用者複製的照片。
免責聲明:Digikam 似乎更新照片元數據不正確。所以這將靜默失敗(:trollface2 :),使(元數據)數據庫不一致。幸運的是,我現在不關心做標記,但這是我以後偶然發現的另一個小陷阱。
有趣的是,在這種情況下它沒有使用 rename() ,因為移動跨越了文件系統。在這種情況下,Nautilus 只是通過從源文件 :trollface: 重新應用權限來提供一致的語義。
我希望這是唯一的問題。但是我在複製時也獲得了相同的有效權限。如果我使用
getfacl
. 然而,它也顯示了一個“遮罩”,並且預設應用的 ACL 被遮罩有效地禁用。甚至要讓複製工作……您不一定需要預設 ACL;從歷史上看,您將依賴使用者私有組模式,共享目錄被標記為 set-GID。
不幸的是,現代 GNOME 不是為多使用者系統開發的,有兩個問題破壞了它。
- udisks在代表使用者掛載 FAT 文件系統(如相機的 SD 卡)時使用古老的 unix 遮罩 0022。
- systemd 錯誤(或“RFE”lol):允許選擇“systemd –user”umask。
例如,當您使用 cp 從 SD 卡中復製圖像時,cp 會複製原始模式,並以目前 umask 為上限。所以它受到這兩個問題的影響。(它可能會受到第一個問題的影響,因為您是從名為
cp
的服務內部執行的)。systemd --user``gnome-terminal-server.service
(這種情況的另一個方面是 Debian 從一開始就實現了 UPG,但是當他們實現 PAM 時破壞了 umask。雖然使用 PAM 配置解決這個問題要簡單得多,但它可能說明需求不足,也許它導致對 UPG 缺乏認識)。
問題 2 打破了UPG 的傳統用法,它依賴於
umask
0002 和 set-GID 共享目錄。但是,當您在共享目錄上使用預設 ACL 時,它
umask
會被有效地覆蓋,並且問題 1 是“唯一”問題。