簡體   English   中英

普通用戶在 /var/run 中觸摸文件失敗

[英]Normal user touching a file in /var/run failed

我有一個名為HelloWorld的程序屬於用戶測試

HelloWorld將在/var/run中創建一個文件HelloWorld.pid以保留單個實例。 我使用以下命令嘗試使測試可以訪問/var/run

usermod -a -G root test

但是,當我運行它時,失敗了

有人可以幫助我嗎?

/var/run的權限是什么? 在我的系統上, /var/runrwxr-xr-x ,這意味着只有用戶root可以寫入它。 權限不允許root組的成員進行寫訪問。

處理這個問題的正常方法是創建一個/var/run的子目錄,該子目錄歸用戶所有,您將在該目錄下運行您的服務。 例如,

sudo mkdir /var/run/helloworld
sudo chown myusername /var/run/helloworld

請注意, /var/run通常是一個臨時文件系統,在系統重新啟動時會消失。 如果您希望在系統啟動時自動創建目標目錄,您可以使用 systemd tmpfiles服務來實現。

一些 linux 系統將每個用戶的運行時文件存儲在/var/run/user/UID/中。

在這種情況下,您可以在/var/run/user/$(id -u test)/HelloWorld.pid中創建您的 pid 文件。


或者,只需使用/tmp

您可能希望使用用戶名作為 pid 文件名的前綴以避免與其他用戶發生沖突,例如/tmp/test-HelloWorld.pid

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM