(Linux 新用户)
我可以限制所有用户(包括 sudo)输入密码来编辑文件吗?
我有 /etc/dnsmasq.conf 文件,其中指定了网站白名单。我想设置密码以允许修改此文件。
是否可以?
编辑:问题是:我是一个需要限制的人。我想限制自己编辑这个文件。我想给这个文件添加复杂的密码,打印这个密码并躲在地下室里。(我是认真的)。因此它必须是 sudo 无法修改的东西。
答案1
简短回答:不。
长答案:视情况而定。
您是否愿意失去完全的 root 访问权限?如果不愿意,那就无法做到。根据定义,root 用户是可以做任何事情的用户,包括完全彻底地破坏系统,但也可以读取和写入所有文件。我回答了一个类似的问题这里. 从逻辑上来说,既是 root 用户,又无权访问所有文件是不可能的。
但是,如果您愿意放弃 root 访问权限,您可以。您只需要其他人在您的机器上拥有 root 权限(比如您的配偶 - 我的意思是,这是关于色情的,不是吗?我知道是......它总是如此。),然后您就会获得一个帐户无需root权限:所谓的“标准用户”。此时,您将无法编辑该文件,因为您不属于 sudoers 组。您的配偶可以。但是,它有限制,您不能安装软件和执行其他系统维护任务。
这不是完全的保护。除非磁盘已加密(并且您没有密码),否则您仍然可以使用 LiveCD/USB 启动并修改文件。从技术上讲,保护您免受自己的攻击几乎是不可能的。
答案2
我不知道有任何软件可以让你用密码锁定特定文件,但你可以更改文件的所有者,以便只有你可以编辑它。
如果你使用 sudo'ers 权限创建文件,例如
sudo touch helloworld.txt
只有 root 用户才能编辑该文件,其他用户将能够打开该文件并查看其内容,但不能对该文件进行任何修改。因此,要更新文件,您可以在终端中执行这些命令。
sudo chown root /etc/dnsmasq.conf
sudo chgrp root /etc/dnsmasq.conf
确保您的其他帐户不在 sudo'ers 组中。
要编辑此文件,您必须以 root 权限打开它,并在命令前面添加 sudo 即可将您提升到该级别。尝试使用此命令来编辑它
sudo nano /etc/dnsmasq.conf
答案3
使用 GPG
加密:
gpg -c --armor $FILE.txt
它会要求您输入密码,并创建一个$FILE.txt.asc
带有该.asc
扩展名的加密文件。然后您可以删除原始文件。或者您可以使用 GPG 创建原始文件。
man gpg
解密:
gpg -d $FILE > output.txt
这会将解密的数据写入名为 output.txt 的文件