![密码保护 /etc/hosts 文件](https://linux22.com/image/1312121/%E5%AF%86%E7%A0%81%E4%BF%9D%E6%8A%A4%20%2Fetc%2Fhosts%20%E6%96%87%E4%BB%B6.png)
我可以创建不同的权限来访问主机文件,以便 sudoer 需要这个额外的密钥才能访问它吗?此外,保护文件的密码是否会阻止操作系统以任何其他方式自由访问它?
答案1
sudo
不必向所有列出的用户授予完全 root 访问权限。您可以进行编辑/etc/sudoers
,以授予某些用户以 root(或其他帐户)身份运行一组受限命令的能力。
因此,例如,您可以授予某些用户执行读取他们原本无法读取的某些文件的命令的权限,然后授予一些更受信任的用户执行的权限,比如说/bin/vi /etc/hosts
。
请注意,您必须非常小心在 中启用的命令/etc/sudoers
。例如,如果您授予用户执行 的权限/bin/view /etc/hosts
,则该用户可以键入:se noro
( :set noreadonly
) 以获取对文件的写访问权限,或者:!bash -l
并获取 root shell。
任何人满的root 访问权限,无论是通过知道 root 密码(如果有)还是通过/etc/sudoers
,都能够进行修改,/etc/hosts
无论其权限是什么。
请注意,“访问”一词指读取和写入。系统上的每个人都应该能够读 /etc/hosts
;我推测您关心的是写访问权限。
答案2
要使 /etc/hosts 文件正常工作,应用程序必须能够自由读取它;否则它将无法正常工作。因此,如果您使用密码保护它(例如,使用密码加密它)以防止其被读取,除非您能以某种方式将密码合并到调用中,否则它将变得毫无用处。至于写入文件;sudoer 可以做任何他/她需要做的事情,包括覆盖它,所以这也行不通。
答案3
hosts 文件有相同的权限选项与其他文件一样。默认情况下,只有 root 用户才允许进行更改。如果您不信任的人知道 root 密码,请更改它并创建具有所需权限的另一个用户,这样他们就无法再修改您想要保护的文件。