Отправьте команду с паролем в новомодном сценарии

pacman -Scc делает то, что вы просите, но это не рекомендуется. Из Wiki

также можно полностью очистить папку кэша с помощью pacman -Scc, но это считается плохой практикой, так как в дополнение к вышесказанному, это также препятствует переустановке пакета непосредственно из папки кэша в случае необходимости, тем самым заставляя его перезагружаться. Вы никогда не должны использовать его, если только нет отчаянной необходимости в большем объеме дискового пространства.

В стороне, когда я удаляю пакеты, я предпочитаю использовать pacman -Rnsc, так как он также удаляет зависимости от пакетов, а также пакеты, которые зависят от этого. Как всегда, внимательно прочитайте, какие пакеты удаляются, так как вы очень легко можете оставить нашу систему в непригодном для использования состоянии.

.

1
23.05.2017, 14:33
3 ответа

Вам не требуется sudo в сценарии инициализации / выскочки. Все службы init / upstart по умолчанию запускаются от имени пользователя root.

Подумайте об этом так: от имени какого пользователя вы ожидаете запускать сценарий выскочки? Если вы ожидаете, что он будет работать как ваш личный пользователь, зачем? Система просто видит сценарий, она не знает, кто ваш личный пользователь.

Короче говоря, измените строку exec на такую:

exec /usr/bin/riofs --fuse-options="allow_other" --fmode=0777 --dmode=0777 xx.xxxxxx /mnt/applications/recorder/streams/_definst_/s3

Хотя в конечном итоге я бы тоже этого не сделал. Вы монтируете файловую систему, это задание для / etc / fstab :

riofs#xx.xxxxxx    /mnt/applications/recorder/streams/_definst_/s3    _netdev,allow_other,fmode=0777,dmode=0777   0 0
3
27.01.2020, 23:28

Вы можете настроить sudo для работы без пароля пользователя. Запустите visudo как root и добавьте NOPASSWD в строку пользователя:

user    ALL=(root)    NOPASSWD: ALL

Edit

Учитывая, что это сценарий выскочки, ответ Патрика правильный.

Также, для произвольных скриптов, 0xC0000022L является хорошим аргументом. Предположим, вы хотите запустить этот сценарий только для root от имени пользователя без пароля:

user@host:~$ ls -lah /usr/local/bin/script.sh
-rwx------  1 root root ... script.sh

При использовании visudo строка пользователя должна быть:

user    ALL=(root)    NOPASSWD: /usr/local/bin/script.sh

Таким образом, требование пароля отменяется только для этой команды.

0
27.01.2020, 23:28

Следует учитывать две вещи.

Во-первых, если вы обнаружите, что вводить пароль при каждом sudo утомительно, сделайте так, как предлагает @mirimir, и отредактируйте файл `/ etc / sudoers 'примерно так:

yourusername ALL=(root) NOPASSWD: ALL

или

yourusername ALL=(ALL) NOPASSWD: ALL

, чтобы исправить это навсегда :-).

Во-вторых, проверьте владельца скрипта. Я почти уверен, что владелец и разрешения имеют значение. Измените владельца таким образом sudo chown root: root /path/to/script.sh. Также рассмотрите возможность установки разрешений на 744 с помощью sudo chmod 744 /path/to/script.sh.

0
27.01.2020, 23:28

Теги

Похожие вопросы