我正在尝试通过 OpenDNS 限制网络访问来进行家长控制。 OpenDNS 帐户密码将交给值得信赖的人。现在,我想对 /etc/resolv.conf 进行一些限制,也许使用密钥或密码,但不是 root 密码。另外,我不想损害内核的可访问性。这可能吗?
答案1
不,不是你想要的方式。 root 可以访问系统上的每个文件。您可以使修改文件变得更加困难(注意:它必须是公开可读的),但如果您具有 root 访问权限,则无法阻止自己修改它。
文件没有密码保护功能。即使有一个,作为 root,你也可以将其删除。 (您可以加密文件,但这会使其无法读取。)
使修改文件变得更加困难的一种方法是设置不可变属性: chattr +i /etc/resolv.conf
。那么修改它的唯一方法就是运行chattr -i /etc/resolv.conf
. (或者进入较低级别并修改磁盘内容 - 如果操作错误,则擦除数据的风险非常高。)
如果您想在网页浏览中放置难以绕过的过滤器,请在单独的路由器盒中进行。让其他人配置它,但不要让他们向您提供管理员密码。
答案2
OpenDNS 帐户密码将交给值得信赖的人。
好的。您希望非 root 用户能够进行有限的更改。
你可以这样做:
- 创建一个新组,例如“OpenDNS”。
- chgrp OpenDNS /etc/resolv.conf
- chmod g+rw /etc/resolv.conf
- 将受信任的用户添加到“OpenDNS”组。
这假设 /etc/resolv.conf 上的权限不受系统其他部分的监管。