Отмена запросов sudo в сценарии оболочки - PullRequest
0 голосов
/ 11 декабря 2018

Я не хочу, чтобы sudo запрашивало у меня пароль во время работы моего скрипта.И я не хочу также вводить пароль sudo, используя sudo -S.Есть ли способ пропустить строки sudo и запустить следующую строку сценария.Или есть ли способ вывести «sudo access required» при появлении запроса sudo и дальнейшего запуска скрипта.

Ответы [ 3 ]

0 голосов
/ 11 декабря 2018

Если вы не хотите запрашивать пароль sudo, просто добавьте вашего текущего пользователя в / etc / sudoers (отредактируйте этот файл как root).

Найдите там блок, начинается с комментария:

# Allow members of group sudo to execute any command

И добавьте туда вид этой строки:

YourUserName ALL=(ALL) NOPASSWD: ALL
0 голосов
/ 11 декабря 2018

Для записи, лучший подход - это просто скопировать скрипт и отредактировать его в некорневой версии.

Тем не менее, если вы создадите функцию для реализации ваших sudo,Требуется установить флаг, вы можете активировать их во время выполнения, но пропустите их по умолчанию.

$: cat tst
#! /bin/env bash

dosudo() {
   if (( DOSUDO ))
   then sudo "$@"
   else echo "Skipping: sudo $@"
   fi
}

echo before
dosudo ls -d /tmp
echo after

Запуск в режиме по умолчанию:

$: tst
before
Skipping: sudo ls -d /tmp
after

Запуск активен (I CTRL-Cвырваться из подсказки здесь) -

$ DOSUDO=1 tst
before
[sudo] password for weblogic:
after
0 голосов
/ 11 декабря 2018

Вы можете проверить, является ли текущий пользователь root, например:

if [ "$(id -u)" != "0" ]; then
    echo "root access required"
    exit -1
fi
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...