假设一个目录dir1
是sudo
在 Desktop 上创建的。
sudo mkdir dir1
然后我申请chown
如下chmod
:
sudo chown root:root dir1
sudo chmod go-rwx dir1
现在dir1
只能通过 owner 访问root
。
$ ls -ld dir1
drwx------ 2 root root 4096 Jul 29 19:21 dir1
如果用户 ( $USER
= pandya
) 尝试dir1
使用GUI nautilus(没有sudo
)删除,那么他不能,这没关系。
但是,如果试图用终端删除,那么他可以,这是不行的:-
rm -r
(没有sudo
):$ rm -r dir1 rm: descend into write-protected directory ‘dir1’? Y rm: remove write-protected directory ‘dir1’? Y $
更轻松地使用
rmdir
!(没有须藤):$ rmdir dir1 $
因此,如何防止dir1
与用户一起被删除sudo
?
[可选]
我的最终目标是:只有所有者可以删除目录,组和其他只能读取/执行。
Class Stacker在他的回答中说的是正确的,但它并没有解决你的问题。为了防止拥有父目录(
/home/pandya
在您的情况下)所有权限的用户删除目录,您必须使用该chattr
命令。这是一个例子:
在鹦鹉螺号中:
请阅读
man chattr
以获取更多信息。实际上,目录是特殊文件。
在目录
/home/user
中,创建或删除整体(如文件或目录)的权限由其/home/user
本身的权限决定,而不是由条目的权限决定。在您的情况下,最好提供一个子目录,例如
/home/user/fixed
,并将其权限设置为r-x
。然后,用户将无法在其中创建或删除文件或目录。他可能仍然能够根据内部各个文件和目录的权限进行编辑、继承等/home/user/fixed
。