是否有chmod
和chgrp
的组合变体在每个文件的单个系统调用中设置权限和组?
答案 0 :(得分:3)
没有这样的变体,因为两个操作chmod(2)
和chown(2)
是由不同的系统调用实现的。
chmod
和chown
由于安全问题,您可能正在寻找chmod
和chown
的此类变体。如果是这种情况,您可以使用以下策略:
这样可以避免与对chmod
和chown
或chown
和chmod
的连续调用相关的潜在安全问题。
install
/ open
技巧同时唯一的系统调用设置模式标志和所有权信息可能是open(2)
。因此,您可以使用模拟目标所有者的进程以适当的模式打开文件。这可能是install
所做的,所以如果这是一个选项:
install
命令将旧文件复制到具有所需所有权和访问模式信息的新文件。然而,这样做会破坏硬链接。基于chown
和chmod
的解决方案没有这个问题。
答案 1 :(得分:1)
AFAIK,没有。
此外,由于文件访问模式和所有者/组信息是使用不同的系统调用设置的(请参阅man 2 chmod
和man 2 chown
),我认为不会可以实现这样的命令......至少在类似Unix的主流系统上。
(显然,可以修改GNU / Linux内核以添加组合系统调用,但是使用系统调用的假设命令将不可移植。)