我需要授予用户通过 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权限执行所有命令的权限。
我应该做什么来授予用户仅修改特定文件而不可能破解系统。
经过一些研究这个问题后,我发现了解决这个问题的第三种变体。
通过编辑 sudoers 我们可以授予用户运行sudoedit 的权限。这是修改仅 root 文件的安全方法,不会被黑客攻击。所以答案是
hosteditor ALL=(root) sudoedit /etc/hosts
Run Code Online (Sandbox Code Playgroud)