首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >结合chmod和chgrp的Shell命令

结合chmod和chgrp的Shell命令
EN

Stack Overflow用户
提问于 2014-09-11 10:58:00
回答 2查看 2.4K关注 0票数 4

是否有chmodchgrp的组合变体,为每个文件在一个系统调用中同时设置权限和组?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-11 11:50:57

没有这样的变体,因为两个操作chmod(2)chown(2)是通过不同的系统调用实现的。

chmodchown脱节

由于安全性问题,您可能正在寻找chmodchown的这样一个变体。如果是这样的话,您可以使用以下策略:

  1. 将模式标志标记为目标文件上非常保守的设置(可能为空)。
  2. 更改目标文件的所有者和组。
  3. 为目标文件提供所需的模式标志。

这样,您就可以避免与连续调用chmodchownchownchmod相关联的潜在安全问题。

install/open把戏

同时唯一的系统调用设置模式标志和所有权信息可能是open(2)。因此,您可以使用模拟目标所有者以适当模式打开文件的进程。这可能是install所做的,所以如果这是一个选项:

  1. 重命名旧文件。
  2. 使用install命令将旧文件复制到具有所需所有权和访问模式信息的新文件中。
  3. 删除旧文件。

然而,这样做会打破硬链接。基于chownchmod的解决方案没有这个问题。

票数 3
EN

Stack Overflow用户

发布于 2014-09-11 11:06:59

AFAIK,不。

此外,由于文件访问模式和所有者/组信息是使用不同的系统设置的(请参阅man 2 chmodman 2 chown),我认为不可能实现这样的命令.至少在类似Unix的主流系统上。

(很明显,可以修改GNU/Linux内核以添加一个组合的系统调用,但是使用syscall的假设命令将无法移植。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25785685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档