Linux

groupadd 允許的組名是什麼?

  • April 17, 2011

我按照這些說明建構了提供**groupadd**命令的 Shadow。我現在在嘗試這個時遇到錯誤:

$ groupadd automake1.10
groupadd: 'automake1.10' is not a valid group name

我檢查了字母數字名稱,它們工作正常。

請參閱原始碼,特別是libmisc/chkname.c. Shadow 非常保守:名稱必須與正則表達式匹配,[_a-z][-0-9_a-z]*\$?並且最多可以有GROUP_NAME_MAX_LENGTH字元長(配置選項,預設為 16;使用者名通常最多可包含 32 個字元,取決於編譯時確定)。

Debian 放鬆了很多檢查。至於擠壓,除了空白之外的任何東西:都是允許的。請參閱錯誤 #264879錯誤 #377844

POSIX要求允許字母大小寫、數字和._-如文件名)。如果您不關心可移植性,POSIX 不會設置任何限制。一些建議的限制來自使用:

  • 冒號、換行符和空值是正確的;你只是不能在/etc/passwdor中使用它們/etc/group
  • 僅由數字組成的名稱是個壞主意——如果數字序列在使用者/組數據庫中chownchgrp則應該將其視為名稱,但其他應用程序可能會將任何數字視為數字 id。
  • 強烈建議不要在使用者名中使用首字母-或 a .,因為許多應用程序希望能夠傳遞$user.$group給外部實用程序(例如chown $user.$group /path/to/file)¹。組名中的A.應該會減少麻煩,但我仍然建議不要這樣做。
  • /也可能會造成麻煩,因為某些程序希望能夠在文件名中使用使用者名。
  • shell 會擴展的任何字元都可能有風險。
  • 如果您不關心與可能使用不同編碼的系統共享,非 ASCII 字元應該沒問題。

¹所有現代實現都期望chown $user:$group,但支持chown $user.$group向後兼容性,並且有太多應用程序傳遞一個點來刪除該兼容性支持。

引用自:https://unix.stackexchange.com/questions/11477