![打开文件之前运行进程](https://linux22.com/image/134712/%E6%89%93%E5%BC%80%E6%96%87%E4%BB%B6%E4%B9%8B%E5%89%8D%E8%BF%90%E8%A1%8C%E8%BF%9B%E7%A8%8B.png)
我想实现以下目标:每次我尝试打开一个文件(在本例中为 /etc/hosts)时,一个进程/脚本(我不知道正确的术语是什么)开始运行。该脚本将要求用户执行某些任务,例如花费 x 分钟阅读一些 pdf 或编写该脚本创建的某些文档的 x 行。在此任务完成之前,该文件将不会打开。
这可能吗?我可以用 bash 脚本实现它吗?如果进程在完成之前以某种方式中断,我还可以保证文件不会打开吗?我可以独立于打开文件的方式触发该过程吗?例如,从终端或使用鼠标。
我对计算机了解不多,因此我使用的术语和下面的标签可能不是最好的。如果是这种情况,我很高兴对问题进行任何方便的编辑。谢谢!
答案1
作为 root,要阻止自己取消对网站的阻止,您必须放弃对阻止和解除阻止过程的控制,并让另一个人参与进来。
根本的解决方案是将机器上的 root 权限放弃给其他值得信赖的人,并且至少严格限制您可以通过sudo
.在 Unix 系统上,如果愿意的话,几乎所有软件都可以安装在主目录中。
另一种解决方案是将实际的阻塞过程完全从机器中移出,并让其由单独的设备(例如锁定的路由器)处理。请注意,路由器还需要阻止通过 SSH 进行隧道传输,以及通过其他计算机进行连接的其他创造性方式。
对路由器配置和物理访问的保护还包括对外部网络出口的保护,以免您通过拔下路由器插头并使用以太网电缆绕过它来篡改阻止。
访问路由器的密钥以及路由器的管理员密码将不属于您。
还可能有人可以对虚拟机或容器(或者甚至可能只是 chroot)做一些事情,以便外部连接将受到您无法轻松访问的“另一个系统”(主机)的保护,而您在虚拟机或容器中工作。
我相信这是对您的问题的技术解决方案的限制。因此,它们不限于 Unix 系统。下一步将以其他方式处理个人行为,例如通过改变您的工作方式(始终被关心的人看到),或寻求行为治疗师或类似人员的外部帮助。