Linux

每次重啟後粘滯位都會重置

  • December 10, 2018

我有一個執行一些專用任務的 CentOS 伺服器,其中不同的程序/使用者需要完全訪問彼此的文件。由於這些文件本質上是臨時的,因此它們儲存在/tmp目錄中。

/tmp目錄預設設置了粘性位。因此,對於我的場景,我禁用了粘性位,否則程序/使用者 B 無法刪除程序/使用者 A 創建的文件 - 它應該能夠做到這一點,因為 A 僅提供 B 並且只有在 B 完成後,文件可以刪除。

chmod -t /tmp

到現在為止還挺好!但是,每次我重新啟動機器時,它都會再次自動設置粘性位,我再次將其刪除。

我一直在考慮為這些文件創建另一個目錄,但這對我來說似乎不是很有必要,因為正如我所說,伺服器執行一些專門的任務,即。除了 A 和 B 做他們的工作之外,沒有什麼事情發生。

但是我可以通過什麼方式去除粘性位並讓它持久存在?如果不能用chmod那怎麼辦?

使用不同的目錄,而不是/tmp.

粘性位將始終/tmp由 systemd 在啟動時添加,它會在每次啟動時重新創建目錄。

刪除粘性位是不明智的,因為這會阻止其他任何東西使用/tmp. 還有許多其他的東西確實使用/tmp了 ,即使它們的使用可能並不明顯,即使您在伺服器上執行的可能很少。除去粘性位,遲早會回來咬你。

您真正需要的只是 B 能夠刪除 A 創建的文件。因為能夠刪除文件是由包含目錄的寫入權限控制的,所以您需要做的就是創建一個 A 和 B 都可以寫入的目錄。您可以使用 ACL 或組成員身份來執行此操作。

引用自:https://serverfault.com/questions/943619