Ubuntu

如何強制對未來文件設置(而不是減去)權限?

  • December 24, 2021

我在 Ubuntu Linux 上有一個程序,它創建一個logs/error.log具有權限660( rw-rw----) 或640( rw-r-----) 的文件。但我希望文件權限始終為666( rw-rw-rw-) (包括程序創建文件時)。

限制:

  1. 我不能修改程序。因此,我無法更改660程序使用新文件的模式。
  2. 該程序可以隨時重新創建文件。因此,單一手動執行的方案chmod是不適合的。
  3. 我需要添加一些權限,但不能減去。因此,umask並不setfacl適合。

您可以使用它inotify來跟踪創建它的文件或目錄,以便在創建時更新其權限

如果所有其他更理智的選項都沒有了(比如為神秘的日誌創建程序選擇一個合適的使用者/組,該程序與您想要從 docker 主機執行的任何操作兼容,或者修改程序的配置以使其使用正確的權限),您可以使用以下LD_PRELOAD技巧:

用你的神秘程序用來創建文件的任何系統呼叫來掛鉤它(可能是creatopen,檢查strace)。然後比較文件名,並mode僅修改您的日誌文件。

這需要你知道如何用 C 程式。

引用自:https://unix.stackexchange.com/questions/683385