如何要求密码才能编辑文件?

如何要求密码才能编辑文件?

(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 的文件

相关内容