为了克服拖延症,我编辑/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
。