标签:linux find chmod permissions setuid
我试图找出一种方法来为递归设置权限700为特定路径上的目录和子目录和文件600.我会使用这些命令:
find / path -type d -print0 | xargs -0 chmod 700
find / path -type f -print0 | xargs -0 chmod 600
但是用户没有运行“find”命令的权限.
作为一种解决方法,我尝试使用setuid sticky bit设置包含来自root用户的上述命令的脚本,以便它将以root权限运行(例如普通用户以root权限运行的passwd或sudo命令):
chmod 4755 script.sh
但是我无法从有限的用户帐户执行脚本,它仍然说我没有运行find命令的权限.
有没有人知道如何在不使用“查找”命令的情况下完成此操作?
编辑:
操作系统:Centos 6.5
最佳答案:
显然,这很容易实现.有两种方法:仅使用chmod,或在所需路径上设置ACL(访问控制列表):
>使用chmod我会运行:
chmod -R u = rwX,g =,o = / path
对于用户所有者我给大写“X”,所以它只适用于目录而不是文件.
>使用ACL:
setfacl -Rm u :: rwX,g :: 0,o :: 0 / path
setfacl -Rm d:u :: rwX,g :: 0,o :: 0 / path
再次使用大写“X”,因此它仅适用于目录而不适用于文件.第一个命令应用ACL,第二个命令使其成为默认策略,因此新创建的文件将继承所需的权限.
标签:linux,find,chmod,permissions,setuid 来源: https://codeday.me/bug/20190516/1115735.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。