Directory

XDG_RUNTIME_DIR 的預設值好嗎?

  • November 18, 2019

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的人推薦,因為這個目錄只能由使用者訪問。

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