标签:unix system-calls chmod chgrp linux
chmod和chgrp是否有一个组合变体,可在一个系统调用中为每个文件设置权限和组?
解决方法:
没有这样的变体,因为两个操作chmod(2)和chown(2)是由不同的系统调用实现的.
摆脱chmod和chown
由于安全问题,您可能正在寻找chmod和chown的此类变体.在这种情况下,可以使用以下策略:
>将模式标志剥离到目标文件上非常保守的设置(可能为空).
>更改目标文件的所有者和组.
>为目标文件提供所需的模式标志.
这样,您可以避免与连续调用chmod和chown或chown和chmod相关的潜在安全问题.
安装/打开技巧
可能同时唯一的系统调用设置模式标志和所有权信息是open(2).因此,您可以使用一个过程模拟目标所有者以适当的方式打开文件.这可能是安装所做的,因此,如果可以选择的话:
>重命名旧文件.
>使用install命令将具有所需所有权和访问模式信息的旧文件复制到新文件.
>删除旧文件.
但是,这样做会断开硬链接.基于chown和chmod的解决方案不存在该问题.
标签:unix,system-calls,chmod,chgrp,linux 来源: https://codeday.me/bug/20191029/1957870.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。