如何在Linux中的所有子目录上强制CURRENT目录权限?

时间:2012-09-03 08:17:17

标签: linux shell permissions

我经常发现自己处于以root身份登录shell的情况(我已经被告知这是一种不好的做法)并将新文件复制到apache提供的某个目录中。 / p>

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

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

Windows具有这样的功能,您可以在其中重置所有文件和文件夹权限"到那些父文件夹。

2 个答案:

答案 0 :(得分:5)

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

stat -c %a .

要递归设置权限,请使用

chomd -R

放在一起,它给出了

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

或者,如果支持,您可以使用--reference的{​​{1}}选项。

chmod

答案 1 :(得分:1)

+ 1' d @ choroba的答案,但是......你确定你想做什么?

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

  

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

     
      
  • 读取权限授予读取文件的权限。 为目录设置时,   此权限授予读取目录中文件名称的能力,   但是没有找到关于它们的任何进一步信息,如内容,文件类型,   规模,所有权,权限。
  •   
  • 写入权限授予修改文件的权限。 为目录设置时,   此权限授予修改目录中条目的权限。这包括   创建文件,删除文件和重命名文件。
  •   
  • 执行权限授予执行文件的能力。此权限必须   为可执行程序设置,包括shell脚本,以便允许操作   系统来运行它们。 为目录设置时,此权限授予访问权限   文件内容和元信息,如果其名称已知,但不是列表文件   目录,除非也设置了读取。
  •   
     

在目录上设置权限的效果,而不是   文件,是&#34;最常被误解的文件权限之一   问题&#34;

     

未设置权限时,将拒绝相应的权限。   与基于ACL的系统不同,类Unix系统的权限不是   遗传。在目录中创建的文件不一定具有   与该目录相同的权限。

     

(强调添加)