如何防止目录被用户删除?

Pan*_*dya 6 permissions command-line rm chmod

假设在桌面上dir1创建了一个目录sudo

sudo mkdir dir1
Run Code Online (Sandbox Code Playgroud)

然后我申请chownchmod如下:

sudo chown root:root dir1
sudo chmod go-rwx dir1
Run Code Online (Sandbox Code Playgroud)

现在dir1只能由 owner 访问root

$ ls -ld dir1
drwx------ 2 root root 4096 Jul 29 19:21 dir1
Run Code Online (Sandbox Code Playgroud)

如果用户 ( $USER= pandya) 尝试dir1使用GUI nautilus (没有sudo)删除,那么他不能,这没关系

在此处输入图片说明

但是,如果尝试使用终端删除,那么他可以这样做,这是不行的:-


因此,如何防止dir1被用户删除sudo

[可选]
我的最终目标是:只有所有者才能删除目录、组和其他只能读取/执行。

Rad*_*anu 6

说什么类堆他的回答是正确的,但它并没有解决你的问题。为了防止拥有父目录(/home/pandya在您的情况下)的所有权限的用户删除目录,您必须使用该chattr命令。

下面是一个例子:

$ sudo mkdir dir1
$ sudo chattr +i dir1
$ rmdir dir1
rmdir: failed to remove ‘dir1’: Operation not permitted
$ rm -r dir1
rm: remove write-protected directory ‘dir1’? y
rm: cannot remove ‘dir1’: Operation not permitted
$ chattr -i dir1
chattr: Permission denied while setting flags on dir1
Run Code Online (Sandbox Code Playgroud)

在鹦鹉螺中:

在此处输入图片说明

请阅读man chattr以获取更多信息。