【问题标题】:Granting my access permissions to everyone?向所有人授予我的访问权限?
【发布时间】:2016-07-17 00:39:09
【问题描述】:

如果文件夹folder 对我来说是读/写/执行的,那么它应该变成对每个人都是读/写/执行的。 调用chmod -R 777 ./folder 不合适,因为它使所有 文件都可执行,即使是以前不可执行的文件。
有什么简单的方法吗?

【问题讨论】:

  • 为什么chmod -R 777 ./foler 除了可执行文件之外,还不能访问这些文件?
  • @AvihooMamka 它做的太多了:它使只读/写的文件也可以执行,这是不可取的

标签: linux file-permissions chmod


【解决方案1】:

您可以使用 UNIX find 结合 exec 标志来对每个匹配过滤器的文件运行 chmod 命令,并过滤可执行位。

例如

先递归找到不可执行的文件,全部改成RW

find ./folder -not -executable -exec chmod a=rw {} \;

然后递归查找所有可执行文件,并将其全部改成RWX

find ./folder -executable -exec chmod a=rwx {} \;

【讨论】:

  • 与@Lucho 的回答相反,您的脚本分配了与文件 owner 相同的 rwx 访问权限,对吧? (相对于文件 group 的 rwx 访问)。我认为我们可能还需要改进只读和只写访问(否则脚本可能会将只读更改为读写)。
  • 是的,引用的示例仅用于所有者权限,并且仅用作使用 find 匹配和执行的示例 - 您可以添加 -group groupname 以按组选择,或使用 -perm 来匹配特定属性位
【解决方案2】:

您可能希望将文件夹中的文件添加到everyoneusers 等用户组,具体取决于您的发行版。

chown -R <youruser>:everyone ./folder

您可以使用groups 命令检查您有哪些可用的用户组。

【讨论】:

  • 注意:这是一种实用的简单方式,但您需要拥有sudo 权限。 @cms 下面的回答避免了这种情况。
猜你喜欢
  • 1970-01-01
  • 2023-03-21
  • 2014-08-11
  • 1970-01-01
  • 2020-10-05
  • 2020-12-25
  • 2013-10-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多