使用数字参数进行 chown

使用数字参数进行 chown

我在 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 执行。用户名是为了您的利益,而不是操作系统。

相关内容