LINUX.ORG.RU

sudo в скрипте

 , ,


0

2

Я правильно понимаю, что не существует нормального способа использовать sudo в неинтерактивном режиме, ему нельзя напрямую передать пароль?

Deleted

запускай скрипт от рута по крону, например.

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

Spoofing ★★★★★
()

man sudo

     -S, --stdin
                 Write the prompt to the standard error and read the password
                 from the standard input instead of using the terminal device.
                 The password must be followed by a newline character.

DeadEye ★★★★★
()

А вообще поддерживаю оратора выше на тему cron.

DeadEye ★★★★★
()
Ответ на: комментарий от Spoofing

Я не говорил про использование без пароля.

Deleted
()
Ответ на: комментарий от DeadEye

Да, уже нашёл тоже, спасибо. Только вот KDialog почему-то очень тормозной, между вводом пароля и появлением следующего окошка проходит секунд 5-7.

Deleted
()

Есть еще такая штука, как setuid (aka suid bit), правда на скриптах не работает.

P.S. Зато ты можешь написать собственный suid бинарник чтоб запустить свой скрипт :)

#include <errno.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>

int main(int argc, char *argv[]) {
    if (argc > 1) {
        execvp(argv[1], argv + 1);
        perror(argv[1]);
    } else {
        fprintf(stderr, "Usage:\n\t%s command [args...]\n", argv[0]);
    }

    return ENOENT;
}
Затем:
gcc main.c -o mysudo
sudo chown root:$(id -g) mysudo
sudo chmod 4110 mysudo

Естественно, внутри бинарника можешь себе захардкодить путь к твоему скрипту (вместо argv[1]), чтоб ненароком из-под EUID=0 не запустить какую-нибудь хрень.

KennyMinigun ★★★★★
()

добавь бинарник к списку доверенных и запускай его без запроса пароля

Deleted
()
Ответ на: комментарий от Spoofing

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

Если без пароля для избранных команд, то нормально. Писать же пароль в крипте в открытом виде для sudo -S в 100500 раз хуже.

anonymous
()
Ответ на: комментарий от KennyMinigun

Таких советов на ЛОРе было уже море. Кстати это велосипед на тему NOPASSWD:/path/to/executable

anonymous
()

в общем случае - гугли про expect/empty или аналоги.

ananas ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.