2

在终端我知道我可以

chown whatever:whatever .*

我想要做的是将用户名和组动态设置为当前域所有者而不是 root。是否有捷径可寻?

一些背景:我正在使用 Git 作为 root 推送到我的服务器,然后签出到 public_html。这使得任何新文件和目录都归 root:root 所有。我想在 hooks/post-receive 中添加一行以将所有者更改为域用户而不是 root,但如果我不需要,我不想显式指定域用户。

4

3 回答 3

7

我能想到的简单点是

chown -R `stat . -c %u:%g` *

您也可以$(...)在这里使用而不是反引号。

于 2013-10-19T18:59:48.743 回答
2

可能不完全是您想要做的,但这是在搜索有关将文件/文件夹设置为父母所有者的第一个线程。我通过“参考”开关实现了这一点。所以在子目录中然后运行:

chown * -Rv --reference=/PATH/TO/PARENT

这会将子目录的所有内容设置为您关心的任何参考文件,在我的情况下,我使用的是父目录。

于 2019-04-17T19:22:44.503 回答
0

这将递归地将所有文件和目录设置为当前目录的所有者/组。

 #!/bin/ksh
 OWNER=`ls -ld ./ | cut --delimiter=" " --fields="3"`
 GROUP=`ls -ld ./ | cut --delimiter=" " --fields="4"`
 chown -R $OWNER:$GROUP *

测试该命令以确保它适用于您的 Linux 风格。

 #!/bin/ksh
 OWNER=`ls -ld ./ | cut --delimiter=" " --fields="3"`
 GROUP=`ls -ld ./ | cut --delimiter=" " --fields="4"`
 echo $OWNER:$GROUP
于 2013-10-19T18:21:01.387 回答