符号链接和 chown 传递的默认所有者和组

符号链接和 chown 传递的默认所有者和组

我有两个问题,但它们彼此密切相关。

我有一个 Linode 的新 Debian 服务器,而我以前的服务器是 Hostgator 运行的 CentOS。我经常使用此命令来创建符号链接:

ln -s /home/codebase/classes classes

CentOS 服务器上的权限如下所示:

lrwxrwxrwx 7 root root  4096  Jan 10 classes

权限为 777,所有者:组为 root:root

然而 Debian 服务器会显示

lrwxrwxrwx 7 cpm210 cpm210  4096  Jan 10 classes

这是创建该文件夹的用户:组(无论哪种方式,我都以 root 身份登录)

问题#1,为什么它们有区别,我应该接受 cpm210:cpm210 作为 Debian 服务器的默认值吗?

问题#2:我有一个文件夹,假设里面/var/www/cpm210/public_html装满了文件,再加上几个文件夹符号链接到其他位置(通常是代码库)。代码库文件夹具有其他权限,因此 apache 只能读取这些文件 - 这正是我想要的。然而,在将文件移动到 public_html 文件夹的过程中,我最终需要发出以下命令:

chown -R cpm210:cpm210 /var/www/cpm210/public_html/*

但我想在不触及符号链接的情况下执行此操作,而只触及文件。

我该怎么做呢?

答案1

只需按照描述chown使用--dereferencechown(1)。所以在你的情况下:

chown --dereference -R cpm210:cpm210 /var/www/cpm210/public_html/

由于您使用了 ,所以末尾的通配符也是不必要的-R

顺便说一句,相反的是--no-dereference(短-h)。

相关内容