![设置 sudo 以便特定普通用户可以编辑 /etc/fstab](https://linux22.com/image/1006339/%E8%AE%BE%E7%BD%AE%20sudo%20%E4%BB%A5%E4%BE%BF%E7%89%B9%E5%AE%9A%E6%99%AE%E9%80%9A%E7%94%A8%E6%88%B7%E5%8F%AF%E4%BB%A5%E7%BC%96%E8%BE%91%20%2Fetc%2Ffstab.png)
我该如何设置sudo
以便特定的普通用户可以编辑/etc/fstab
?我想过通过编辑/etc/sudoers.d
文件来做到这一点,但是我们如何编辑/etc/fstab
这个文件呢?
答案1
使用您最喜欢的编辑软件在 cmd 别名中的 sudoers.d 中添加一行应该可以解决问题:
Cmnd_Alias EDITFSTAB = /etc/bin/vim /etc/fstab
username ALL = (user) EDITFSTAB
要小心,存在巨大的特权逃脱风险,也许你应该编写一个基本的 shell 脚本来限制/控制 fstab 修改,而不使用编辑器(即“对于该修改,按 1”并在 fstab 中回显)。
答案2
创建简单脚本,调用editfstab
并位于/usr/local/bin
(可作为 shell 命令访问),并使其可执行:
echo -e '#!/bin/sh\nnano /etc/fstab' | sudo tee /usr/local/bin/editfstab && sudo chmod +x /usr/local/bin/editfstab
运行命令sudo visudo -f /etc/sudoers.d/editfstab
并将以下规则添加为新创建的文件的内容:
ALL ALL=NOPASSWD: /usr/local/bin/editfstab
此时,每个系统用户都可以/etc/fstab
通过以下命令编辑,无需密码:
sudo editfstab
/usr/local/bin/editfstab
您可以通过添加在编辑之前制作备份的功能来扩展其功能:
#!/bin/sh
cp /etc/fstab /etc/fstab.bak
nano /etc/fstab