0

我一直在寻找为什么我的 sudo 配置无法通过 NFS 挂载本地 NAS 服务器而不提示输入密码 - 更何况它在 Fedora 下已经工作了多年,并且似乎无法在相同的配置下工作曼扎罗。这个想法只是让我的妻子随意挂载文件,而不用记住复杂的密码,并且避免依赖 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 中不起作用?感谢您阅读,祝您一切顺利,

4

1 回答 1

0

我终于找到了我的问题的答案——我会发帖以防万一它对任何因同样错误而绊倒的人有用。如维基中所述(https://wiki.archlinux.org/index.php/Sudo#Example_entries):

最定制的选项应该放在文件的末尾,因为后面的行会覆盖前面的行。

因此,问题在于不要依赖 visudo 文件中的默认注释,因为有一个最终命令很容易被误认为是注释——但不是:

#includedir /etc/sudoers.d

这包括一个确实包含 10 个安装程序文件的目录,在轮组上应用默认行为,覆盖我的自定义命令:

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

如果这很明显,请原谅噪音,并希望对其他人有所帮助。一切顺利,

于 2018-09-10T08:19:23.570 回答