“锁定”一个特定的文件,这样我和root就不再有权访问它了

“锁定”一个特定的文件,这样我和root就不再有权访问它了

为了克服拖延症,我编辑/etc/hosts文件时会添加浪费时间的网站并将它们指向localhost。然而,肉体是脆弱的,我经常发现自己会撤销更改。

我正在考虑以下解决方案,但我不知道从技术上来说是否可行。

我会请一位值得信赖的朋友过来,创建一个新账户,用一个我不知道的强密码,更改文件的所有者和权限,/etc/hosts这样只有新用户才能更改该文件,而我也不是根无法再访问它。

用例是,我在考试前请朋友过来,他修改文件并设置拖延阻止措施,在我需要学习的时间里,我无法自己编辑文件。考试结束后,我请他“解锁”文件,我又可以自由浏览了。

答案1

您可以锁定文件,这样甚至 root 用户也无法编辑它。

sudo chattr +i /etc/hosts

考试结束前别再读这个答案了:)

然后使用

sudo chattr -i /etc/hosts

答案2

最终,如果 root 访问权限可用,就没有万无一失的方法可以阻止聪明的用户做他们想做的事情。我认为除了放弃 root 访问权限之外,没有其他方法可以做到这一点。

答案3

您可以设置另一个用户帐户,该帐户是无法使用 sudo 的普通桌面用户。然后让您的伙伴过来并以您的现有帐户身份登录,编辑 /etc/hosts 文件,然后重置您的密码(不告诉您密码是什么)并注销。

然后您必须使用新帐户,该帐户没有编辑 /etc/hosts 的权限。

但是,您仍然需要运用意志力来阻止您从实时 CD/USB 启动。

答案4

另外,在创建/etc/hosts文件的同时,您还可以编辑/etc/sudoers文件或直接将用户从admin组中移除。更改组可能更容易。

您可能应该建立一个安全保护措施,以便您可以将自己重新添加到组中。我建议/etc/rc.local在唤醒脚本中添加一些内容(比完全重启更快)。

如果最坏的情况发生并且您被锁定,您可以启动到恢复模式(在 grub 中)并使用根控制台手动将您的用户添加回组admin

相关内容