我在 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 来使用数字的不存在用户,但不能使用名称?
答案1
为什么我可以使用 chown 来使用数字的不存在用户,但不能使用名称?
因为用户名必须解析为 UID,所以如果用户不存在则无法解析,而 UID 是一种终止类型(它描述自身而无需解析)。
从技术上讲,操作系统的所有 chown 请求都必须针对 UID 执行。用户名是为了您的利益,而不是操作系统。