如何通过 sudo 授予用户仅修改特定受保护文件

Vla*_*eev 3 centos sudo

我需要授予用户通过 sudo 修改某些仅具有只读访问权限的文件。

例如,我想授予用户“ hosteditor ”修改“ /etc/hosts ”文件。我向 sudoers 添加了以下行:

hosteditor ALL=(root) /usr/bin/vim /etc/hosts
Run Code Online (Sandbox Code Playgroud)

现在,用户hosteditor只能使用vim来修改/etc/hosts文件。但是如果这些用户在修改文件时输入!/bin/sh,他将获得以root权限执行所有命令的权限。

我应该做什么来授予用户仅修改特定文件而不可能破解系统。

Vla*_*eev 5

经过一些研究这个问题后,我发现了解决这个问题的第三种变体。

通过编辑 sudoers 我们可以授予用户运行sudoedit 的权限。这是修改仅 root 文件的安全方法,不会被黑客攻击。所以答案是

hosteditor ALL=(root) sudoedit /etc/hosts
Run Code Online (Sandbox Code Playgroud)