我该如何设置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