Зокрема, див. Вихідний код libmisc/chkname.c. Тінь досить консервативна: імена повинні відповідати регулярному вираженню [_a-z][-0-9_a-z]*\$?та можуть містити не більше GROUP_NAME_MAX_LENGTHсимволів (параметр налаштування, типово 16; імена користувачів можуть містити до 32 символів, залежно від часу компіляції).
Debian сильно розслаблює чек. На віджимання :дозволено все, крім пробілу . Дивіться про помилку # 264879 та помилку # 377844 .
POSIX вимагає дозволу літер будь-якого регістру, цифр та ._-( як імена файлів ). POSIX не встановлює жодних обмежень, якщо ви не дбаєте про переносимість. Низка рекомендованих обмежень випливає із використання:
- Колони, нові рядки та нулі прямо виходять; ви просто не можете їх використовувати в
/etc/passwdабо /etc/group.
- Ім'я, що складається виключно з цифр, є поганою ідеєю -
chownі chgrpвони повинні трактувати послідовність цифр як ім'я, якщо воно є в базі даних користувачів / групи, але інші програми можуть розглядати будь-яке число як числовий ідентифікатор.
- Ініціатор
-або .ім'я користувача настійно не рекомендується, оскільки багато програм очікують, що вони зможуть перейти $user.$groupдо зовнішньої утиліти (наприклад chown $user.$group /path/to/file) ¹. .Назва групи повинно викликати менше проблем, але я все ж рекомендую проти нього.
/ ймовірно, це спричинить проблеми, оскільки деякі програми очікують, що вони зможуть використовувати імена користувачів у іменах файлів.
- Будь-який символ, який оболонка розширить, мабуть, ризикований.
- Символи, що не належать до ASCII, мають бути нормальними, якщо вам не байдуже ділитися з системами, які можуть використовувати різні кодування.
Expect Очікуються всі сучасні реалізації chown $user:$group, але підтримка chown $user.$groupзворотної сумісності, і там надто багато додатків, які передають крапку, щоб видалити цю підтримку сумісності.
chownаргумент: поточний синтаксис, принаймні, в GNU coreutils, єuser:group, якщо крапка приймається лише для сумісності. Можна використовуватиj.smith:j.smith.