Users
我需要用引號括起使用者名和組嗎?
根據 systemd 的強制使用者/組名稱語法,一組一組由與 POSIX 完全相同的規則定義,即隨機序列中的*«小寫和大寫 ASCII 字母、數字、句點、下劃線和連字元»*對於基於 Debian 的作業系統。
…該值應由可移植字元集中的字元組成(NUL 除外,如下所示)。
因此,與 POSIX環境變數前向兼容的使用者名有效字元串的定義和變數周圍的引號
$USER
可以在chown
或install
?等命令中省略。
您連結到的systemd 頁面顯示:
每當 systemd 組件接受並使用由系統的其他(非 systemd)組件註冊的使用者/組名稱時,就會強制執行寬鬆的使用者/組名稱語法
$$ … $$
並且那裡的規則似乎允許在使用者名中間使用空格。在頁面的前面,它提到至少會
sssd
生成這樣的名稱。因此,即使當您確定該值不包含
IFS
字元或全域字元時,即使在技術上不引用變數擴展也是可行的,考慮您的確定程度以及它是否更容易使用可能是個好主意引號而不是驗證值的所有可能來源以及所有可能更改的程式碼部分IFS
。