我一直在寻找为什么我的sudo配置无法在不提示输入密码的情况下无法通过NFS挂载本地NAS服务器的信息-在Fedora下它已经使用了多年,而且似乎无法与Manjaro下的配置相同。 这样做的目的只是为了让我的妻子随意挂载文件,而不必记住复杂的密码,并且避免依赖fstab,以免在不在本地网络上时降低启动时间。 该脚本非常简单,并包含如下所示的文件夹列表:
```bash
#!/bin/bash
mount -t nfs 192.168.X.X:/volume1/manon /mnt/NAS/manon -o auto,user,rw,noatime
# more folders…
exit 0
```
当与sudo一起使用并提供用户密码(也具有方便的bashrc别名)时,它当然可以按预期工作。 然后,我遵循了Arch Wiki(https://wiki.archlinux.org/index.php/Sudo#Example_entries)的要求,在这一行中将NOPASSWD应用到用户的预期脚本上(我也尝试在此处添加pacman系统更新):
```
manon ALL=(ALL) NOPASSWD: /home/manon/.script/NASNFS.sh,/usr/bin/pacman -Syyu
```
由sudo -lu确认:
```console
[manon@manonPC ~]$ sudo -lU manon
L'utilisateur manon peut utiliser les commandes suivantes sur manonPC :
(ALL) NOPASSWD: /home/manon/.script/NASNFS.sh, /usr/bin/pacman -Syyu
(ALL) ALL
```
但是,它仍然要求输入密码–安装文件或更新系统–我做什么……我也试图将主机名添加到visudo,或使用%wheel组(manon所属),但没有结果。
有人对我错过的步骤有任何想法吗?为什么这在Fedora中不起作用? 感谢您阅读并致以最美好的祝愿,
答案 0 :(得分:-1)
我终于找到了我的问题的答案–我会发帖,以防万一对任何遇到同样错误的人有用。 如Wiki(https://wiki.archlinux.org/index.php/Sudo#Example_entries)所述:
最自定义的选项应放在文件末尾,因为 后几行将覆盖前几行。
因此,问题在于不要依赖visudo文件中的默认注释,因为有一个最终命令很容易被误认为是注释–但事实并非如此:
#includedir /etc/sudoers.d
这包括一个确实包含10个安装程序文件的目录,该目录在wheel组上应用默认行为,覆盖了我的自定义命令:
%wheel ALL=(ALL) ALL
这就是为什么我要输出sudo -lU manon:
[manon@manonPC ~]$ sudo -lU manon
L'utilisateur manon peut utiliser les commandes suivantes sur manonPC :
(ALL) NOPASSWD: /home/manon/.script/NASNFS.sh, /usr/bin/pacman -Syyu
(ALL) ALL
而不是现在:
[manon@manonPC ~]$ sudo -lU manon
L'utilisateur manon peut utiliser les commandes suivantes sur manonPC :
(ALL) ALL
(ALL) NOPASSWD: /home/manon/.script/NASNFS.sh
结论:当心在文件末尾的visudo中添加您的自定义规则,或者在sudoers.d文件夹中创建一个新文件,以增加文件名。
很抱歉听到这些声音,希望对其他人有所帮助。 一切顺利,