Скрипт bash sudo без запроса пароля - Manjaro NFS монтируется

Я некоторое время искал, почему моя конфигурация sudo не работает для монтирования локального NAS-сервера через NFS без запроса пароля - тем более, что он работал годами под 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 ( https://wiki.archlinux.org/index.php/Sudo), чтобы применить 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 ответ

Я наконец-то нашел ответ на свой вопрос - я опубликую его на тот случай, если он будет полезен любому, кто споткнется о ту же ошибку. Как указано в вики ( https://wiki.archlinux.org/index.php/Sudo):

Самый настраиваемый параметр должен идти в конце файла, так как более поздние строки переопределяют предыдущие.

Таким образом, проблема заключается не в том, чтобы полагаться на комментарии по умолчанию в файле 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, увеличивая имя файла.

Извините за шум, если это было очевидно, и надеюсь, что будет полезным для других. Всего наилучшего,

Другие вопросы по тегам