好的,我的主文件夹中有大约 100 个目录,每个目录都由主用户自己拥有。有时我必须以 root 身份手动替换某些文件,因此权限会受到干扰,并且某些文件不再属于该用户。为了解决这个问题,我总是必须在主目录中使用以下命令:
chown -R user:user user/
现在我正在寻找一些快捷方式,因为我无法为所有 100 个用户执行此操作。
我想知道会做什么:
chown -R *:* *
答案1
完整的答案是
1)打开一个文件,例如 vi chown_homedirs
2)输入下一个代码
#!/bin/bash
cd /home &&
for h in *
do
chown -R "$h:$h" "$h";
done
3)保存文件
4)chmod +x chown_homedirs
5)运行./chown_homedirs
注意:如果用户目录中有空格,您始终需要引用扩展名。如果您不引用扩展,事情可能会失败并给您带来意想不到的结果。
答案2
您可以使用统计数据获取文件的用户和组所有权,然后使用它们来更新文件,例如
#!/bin/bash
cd /home
for file in *
do
user=$(stat -c %U "$file")
group=$(stat -c %G "$file")
echo chown -R "$user":"$group" "$file"
done
这涉及所有者/组/目录不相同的情况。如果测试结果对你来说没问题的话,显然要删除回声。