繁体   English   中英

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

[英]How to force CURRENT directory permissions on all sub-directories in Linux?

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

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

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

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

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

stat -c %a .

要递归设置权限,请使用

chomd -R

放在一起,它给出了

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

或者,如果支持,您可以使用chmod--reference选项。

chmod -R --reference=. .

@ choroba的回答为+ 1,但是......你确定这是你想做的吗?

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

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

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

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

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

(重点补充)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM