文件/文件夹的所有者和组之间的关系?

PHP*_*ner 5 permissions users groups

我发现ls我的系统中有一个具有以下输出的目录:

drwxr-xr-x   5 username   root  4096 Jan 14  2015 DIRNAME
Run Code Online (Sandbox Code Playgroud)

这给我带来了一个问题:文件所有者和组之间是否有任何限制?我的意思是系统中的每个用户都属于预定义的组。是否可以将“组”分配给文件用户(所有者)不属于的文件/文件夹?

mur*_*uru 5

是否可以将“组”分配给文件用户(所有者)不属于的文件/文件夹?

当然。例如:

$ sudo ls -l /var/spool/cron/crontabs
total 8
-rw------- 1 muru     crontab 1136 Jul 21 12:30 muru
-rw------- 1 root     crontab 1090 Jan 20  2015 root

$ groups
muru adm cdrom sudo dip plugdev lpadmin sambashare
$ groups root
root : root
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,既不是root,也不是muru,是的成员crontab,但在crontab文件群组拥有者crontab

文件所有者和组之间是否有任何限制?

根本没有1


1好吧,每个都有限制:UID 和 GID 必须是 32 位整数 (IIRC),或者用户名和组名必须存在:

# touch /tmp/foo
# chown 1000000000:2000000000 /tmp/foo
# ls -l !$
ls -l /tmp/foo
-rw-r--r-- 1 1000000000 2000000000 0 Sep 15 09:04 /tmp/foo
# chown gibberish:garbage /tmp/foo
chown: invalid user: ‘gibberish:garbage’
Run Code Online (Sandbox Code Playgroud)

但是,不,所有者和组之间没有关系。