我想限制我的用户从垃圾箱中删除文件。另外,我不希望我的用户绕过垃圾箱删除文件。有什么办法吗?
答案1
不,用户始终能够删除他们拥有的文件(除了一些对于桌面来说不可行的复杂 ACL 设置)。
答案2
ubuntu 中的垃圾桶只是用户主文件夹下的一个特殊子目录,根据定义,它属于该用户。即使您更改了文件权限,用户也可以将其改回,然后删除该文件。
如果您想避免数据丢失,更好的解决方案是设置自动备份 - 这样可以恢复任何被删除的内容。
答案3
第一部分
我们将更改已删除文件的属性,以便只有 root 可以将其改回并最终删除。
1)编辑 /etc/rc.local 如下:
/bin/sh -e #!/bin/sh -e # # rc.local # # 此脚本在每个多用户运行级别结束时执行。 # 确保脚本在成功或出现任何其他情况时“exit 0” # 错误值。 # # 要启用或禁用此脚本,只需更改执行 # 位。 # # 默认情况下此脚本不执行任何操作 # 但 desgua 改变了它 # 保留已删除文件的副本 当 [ “$var1” != “结束” ] 做 sudo chattr +i /home/user_name/.local/share/Trash/files/* 睡眠2 完毕 出口 0
4)使其可执行。
sudo chmod +x /etc/rc.local
5)重新启动或注销并重新登录。
ps-1:为了让处理器更轻松,属性每 2 秒更改一次。您可以根据需要进行更改。ps
-2:要删除属性“i”(不可变),只需执行:
sudo chattr -i /home/user_name/.local/share/Trash/files/*
第二部分
禁用绕过垃圾。
1)打开 gconf-editor。
gconf-编辑器
2)转到/apps/nautilus/preferences/enable_delete,右键单击它并“设置强制”。
第三部分
禁用 Shift + Del
我们将修改键盘映射。
1)创建文件
纳米〜/.Xmodmap
2)粘贴并保存:
键码 119 = 删除 BackSpace
观察:使用“xev”检查键盘 Del 是否确实是“键码 119”
3)我们确实不想删除这个文件,所以:
sudo chattr +i ~/.Xmodmap
5)重启、注销或执行:
xmodmap ~/.Xmodmap
现在完成了!
- 最后编辑 04/07/2011
答案4
desgua 的回答涵盖了您的所有要求(在我看来,应该是可以接受的答案),但我认为有必要强调几点:
无论您对垃圾箱中的文件做什么,您都将在用户可控制的文件夹 (
$HOME/.local/share/Trash
) 中编辑文件及其权限。并且由于您无法删除对用户 $HOME 的权限,因此用户可以撤消任何更改。Gnome 配置也是如此,例如 nautilus 首选项和键盘绑定。最多,您可以更改默认行为,但是,任何用户都可以为其自己的会话覆盖此设置。
那么
rm
类似的 CLI 命令呢?rm
这只是一个例子,但用户可以使用大量其他命令来删除(或销毁)自己的文件。您打算完全删除终端吗?那么 Gnome 的 ALT+F2(运行应用程序)呢?
我的观点是:无论做什么,它都是用户文件,是用户会话,如果他们愿意(并且知道如何)的话,他们将能够绕过你所做的任何保护。desgua 的答案很棒,但请注意,它只是表面的,只有在你拥有非技术用户时才有用。它意味着方便而不是真正的安全措施。
没有真的除非您真的以一种非常不寻常的方式改变整个发行版,否则无法真正实现您想要的目标。
话虽如此,为什么你到底想要这个吗?为了安全还是为了方便?对用户进行适当的 Linux 培训不是比这更好(也更容易)吗?