假设我有一个目录,位于:
/tmp/uploads/
里面有几个由不同用户之前创建的递归目录和文件。
所以现在,我突然如何使上面的目录成为只能由 root 写入?
这意味着,现有的无论用户将突然无法写入(但只读)。那么只能root
继续写下去了。
非常重要的是,我不能失去原来的所有权(谁拥有什么)里面的东西。
毕竟,这也意味着我出于安全原因尝试锁定目录。
谢谢。
答案1
使用属性:
chattr -R +i files
(作为 root)会将+i
属性递归地添加到您的文件夹和文件中,这将防止任何更改。请注意,root 也将被锁定,您i
每次都需要手动取消设置。所有权等将保持不变。
答案2
首先将用户和组更改为root
chown -R root:root /tmp/uploads
然后更改权限,以便只有 root 可以写入
chmod -R 755 /tmp/uploads
编辑:
如果您只需要恢复文件所有者,我会将您的文件和所有者保存在一个文件中(当然有更好的方法可以做到这一点,但这是我首先想到的)。在运行下一个命令之前,请确保 /tmp/old_file_owners 不存在:
for i in $(find /tmp/uploads);do ls -ld $i|awk -vf=$i '{if (NF==9) {print $3 ":" $4 " " f}}'>>/tmp/old_file_owners; done
当您想恢复文件的所有者时,只需执行以下操作
IFS=$'\n';for i in $(cat /tmp/old_file_owners);do chown $i;done
如果您想保留原始文件权限,则需要将更多信息存储在您的文件中,但您可以使用以前的信息作为参考并执行类似的操作。