Directory
XDG_RUNTIME_DIR 的預設值好嗎?
XDG 基本目錄規範是一個非常有趣的使用者目錄規範。它還提供了良好的預設值,除了
XDG_RUNTIME_DIR
.現在我正在編寫一個需要創建命名管道的軟體。它是一個每個使用者的客戶端-伺服器框架(伺服器有一個 FIFO,每個客戶端有一個 FIFO)。
如果
XDG_RUNTIME_DIR
未定義,我目前正在使用每個使用者的子目錄/tmp
——但它不能確保所有指定的條件(即以*“目錄的生命週期必須綁定到正在登錄的使用者……”*開頭的段落)夠
/tmp/myserver-$USER
好嗎?編輯
我在其他地方看到了一些建議:
.
非常不令人滿意(至少因為它不是絕對路徑)。- 我也看到了
/var/run/user/$USER
——不錯,但是那個目錄不存在(至少在我執行 Debian測試的盒子上)
/tmp
已經被許多程序以類似的方式使用。在我的系統上,我可以看到/tmp/orbit-$USER
(Gnome 的 ORBit2 使用)和/tmp/.X11-unix/
(Xorg 和 X11)目錄,其中包含大量管道、ehm、套接字。我相信還有其他人,所以我認為你所做的沒有任何問題。請做好準備,因為它是一個世界可寫位置,惡意程序可以劫持該位置(在寫入之前驗證權限)。我也可以向
$TMPDIR
那些使用pam_mktemp的人推薦,因為這個目錄只能由使用者訪問。