Зокрема, див. Вихідний код 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
.