5

我经常发现自己以root身份登录shell(我已经被告知这是一种不好的做法)并将新文件复制到apache服务的某个目录中。

由于我以 root 身份登录,因此新文件将 root 设置为所有者,并且权限与已经存在的文件不同,我需要更改 Apache 的权限才能访问这些文件。我是手动做的。

我正在研究一种更好的方法。我想知道是否有一种方法可以通过单个命令以某种方式将当前文件夹的权限应用于它的所有子文件夹和文件。

Windows 有这样一个功能,您可以在其中“将所有文件和文件夹权限”重置为父文件夹的权限。

4

2 回答 2

5

要获取当前目录的权限,您可以使用

stat -c %a .

要递归设置权限,请使用

chomd -R

放在一起,它给

chmod -R `stat -c %a .` .

或者,您可以使用是否支持的--reference选项。chmod

chmod -R --reference=. .
于 2012-09-03T08:47:34.020 回答
1

+1'd @choroba's answer但是......你确定那是你想要做的吗?

来自http://en.wikipedia.org/wiki/File_system_permissions ...

权限
类 Unix 系统实现了适用于每个类的三个特定权限:

  • 读取权限授予读取文件的能力。当为目录设置时,此权限授予读取目录中文件名的能力,但不能查找有关它们的任何进一步信息,例如内容、文件类型、大小、所有权、权限。
  • 写权限授予修改文件的能力。当为目录设置时,此权限授予修改目录中条目的能力。这包括创建文件、删除文件和重命名文件。
  • 执行权限授予执行文件的能力。必须为可执行程序(包括 shell 脚本)设置此权限,以允许操作系统运行它们。为目录设置时,如果名称已知,则此权限授予访问文件内容和元信息的能力,但不列出目录内的文件,除非还设置了 read。

对目录而不是文件设置权限的效果是“最常被误解的文件权限问题之一”。

当没有设置权限时,相应的权限将被拒绝。与基于 ACL 的系统不同,类 Unix 系统上的权限不会被继承。在目录中创建的文件不一定具有与该目录相同的权限。

(重点补充)

于 2014-10-05T06:39:56.087 回答