Я пробовал это на Opensuse 12 и Fedora 17, я использую следующие команды
touch file
chown 777 file
ls -l file
-rw-r--r-- 1 777 root 0 Oct 9 21:43 file
grep 777 /etc/passwd
echo $?
1
Нет пользователя 777
grep pippo /etc/passwd
echo $?
1
chown pippo file
chown: invalid user: `pippo'
Но если я использую несуществующего пользователя, я получаю одну ошибку.
Почему я могу использовать числовое имя несуществующего пользователя с chown, но не с именами?
Почему я могу использовать числовое имя несуществующего пользователя с chown, но не с именами?
Поскольку имя пользователя должно быть разрешено в UID, поэтому, если пользователь не существует, разрешение не может произойти, тогда как UID является завершающим типом (он описывает себя без разрешения).
Технически все запросы chown операционной системой должны выполняться с использованием UID. Имя пользователя предназначено для вас, а не для операционной системы.