在用户主目录包含一个或多个NFS挂载点的情况下,如何跳过这些挂载并有效地更改目录权限?
我想chmod o-rwx
在用户主目录下的所有未安装目录上运行。
我将以 root 用户身份运行该命令,因为我正在为系统上的所有用户执行此操作。 (NFS 挂载具有root_squash
挂载选项。)
这是我尝试过的。但是,它并没有按预期工作。
sudo find /home/myuser/ -mount -path ./Documents -prune -o -type d -exec chmod o-rwx {} \;
chmod: changing permissions of '/home/myuser/Documents': Operation not permitted
我想避免出现错误消息。更重要的是,find 命令需要很长时间才能运行。我相信这表明它正在下降到安装点(其中包含许多目录和文件)。
我的命令的另一个问题是我必须明确编码要跳过的位置。所有用户都安装了 Documents,但某些用户还安装了不同名称的其他 NFS。
我的目标是自动修复用户帐户(即chmod o-rwx
)中的简单目录权限问题。在我的情况下我该如何做到这一点?
答案1
这是我想出的解决方案:
find /home/$theuser -mount -maxdepth 1 ! -fstype nfs4 ! -fstype nfs -type d -exec chmod o-rwx {} \;
否定的fstype
选项解决了我的一两个问题。解决-maxdepth 1
了另一个问题(速度)。
可以将这两个-fstype
选项结合起来。如果有人知道,请编辑此答案。