Directory-Structure
生成的腳本應該放在文件系統的什麼位置?
我正在編寫一個生成 Python 腳本的軟體 (C++)。這些臨時存在的腳本應該放在文件系統的什麼位置?
我閱讀了幾頁有關文件系統層次結構標準的內容,但沒有找到對生成腳本的任何參考。
/usr/bin 似乎不是一個好主意,因為它可能對某些使用者是只讀的。我的想法是將它們放在 /var/run/my_program 下。
對嗎?或者什麼是“正確的地方”?
編輯: 腳本僅在創建程序執行時使用。這意味著他們不必經歷重新啟動。
臨時文件的生命週期不超過創建它們的程序的生命週期,特別是不應該在重新啟動後繼續存在的臨時文件,進入
/tmp
. 或者更確切地說,約定是使用環境變數指示的目錄,如果未設置則TMPDIR
回退。/tmp
您可以執行
/tmp
. 雖然系統管理員可以在沒有可執行權限的情況下掛載它,但這對於只執行特定應用程序的系統來說將是一種強化配置:可以預料,阻止執行/tmp
會破壞某些應用程序,而且它通常不會提高安全性。請記住,此目錄通常在使用者之間共享,因此在此處創建文件時需要小心,以免意外開始使用其他使用者擁有的現有文件。使用
mktemp
實用程序或mkstemp
函式,或者更好的是,使用 or 創建一個私有臨時目錄mktemp
並mkdtemp
在該目錄中工作。
/run
或/var/run
不合適,因為您可能沒有在那裡創建文件的權限(實際上,除非系統管理員授予您在此處創建文件的權限)。它們是供系統使用的,而不是供應用程序使用的。