我正在尝试找到一种方法,在特定路径上递归地设置目录和子目录的权限为700,文件的权限为600。我会使用以下命令:
但我无法在受限制的用户帐户中执行脚本,仍然显示我没有权限运行find命令。
有没有人有任何想法,如何在不使用find命令的情况下完成这个任务?
编辑: 操作系统: Centos 6.5
find /path -type d -print0 | xargs -0 chmod 700
find /path -type f -print0 | xargs -0 chmod 600
但用户没有运行“find”命令的权限。 作为一种解决方法,我尝试创建一个包含以上命令的脚本,使用设置了setuid粘着位的根用户来运行它,因此它将以root特权运行(就像普通用户以root特权运行passwd或sudo命令一样):
chmod 4755 script.sh
但我无法在受限制的用户帐户中执行脚本,仍然显示我没有权限运行find命令。
有没有人有任何想法,如何在不使用find命令的情况下完成这个任务?
编辑: 操作系统: Centos 6.5
chmod
版本不太正常,X
是一个特殊的执行权限,如果其他模式中至少有一个具有执行权限,则会授予执行权限。这意味着如果文件已经在用户组或其他人中具有x
,则它将保留用户的执行设置。要仅使用 chmod 完成此操作,我们必须首先清除所有执行设置,然后运行您的 chmod 命令。例如chmod -R a-x /path; chmod -R u=rwX,g=,o= /path
。 - CMCDragonkai