无需提示输入密码的Bash sudo脚本– Manjaro NFS挂载

时间:2018-09-10 01:36:01

标签: bash sudo nfs manjaro

我一直在寻找为什么我的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中不起作用? 感谢您阅读并致以最美好的祝愿,

1 个答案:

答案 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文件夹中创建一个新文件,以增加文件名。

很抱歉听到这些声音,希望对其他人有所帮助。 一切顺利,