Как сделать так, чтобы консольная программа всегда запускался от sudo и не нужно было вводить пароль и писать перед ней sudo?
Система lubuntu 19 имеется консольное приложение, которое не запускается без sudo. Как сделать так, чтобы можно было запускать приложение без приставки sudo?
galaxy, если я даю права запускаться от суперпользователя консольной утилите, а эта утилита использует другие консольные утилиты в своей работе, то права будут переданы всем кто участвует в работе скрипта которому даны права суперпользователя?
Права-то будут переданы, но если утилита - скрипт (не исполняемый файл), фокус с suid не сработает.
В этом случае сложно что-то советовать, не зная, какую задачу вы решаете. Можно сделать alias для пользователя, который запускает скрипт: alias superapp='sudo app'
Но надо чтобы shell пользователя был interactive (например, при запуске из cron это не так).
Из питона, кстати, можно вызвать что угодно, хоть с sudo, хоть без.
дописываешь в /etc/sudoers
user ALL=(ALL) NOPASSWD: /bin/apt-get, /sbin/reboot
и команда
sudo reboot
работает работает от рута без запроса пароля. https://losst.ru/otklyuchaem-parol-sudo-v-linux
значит строчку неправильно вписал. вместо user пиши имя своего пользователя.
вот только что проверил
добавляем правило для запуска /usr/bin/id под рутом без пароля
lenn@homl:~$ echo "lenn ALL=(ALL) NOPASSWD: /usr/bin/id" | sudo tee /etc/sudoers.d/1_my
[sudo] пароль для lenn:
lenn ALL=(ALL) NOPASSWD: /usr/bin/id
проверяем
lenn@homl:~$ sudo -l
Matching Defaults entries for lenn on homl:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User lenn may run the following commands on homl:
(ALL : ALL) ALL
(ALL) ALL
(ALL) NOPASSWD: /usr/bin/id
сбрасываем запомненный пароль в sudo и запускаем id через sudo - всеок, запускается под рутом без запроса пароля.
lenn@homl:~$ sudo -k
lenn@homl:~$ sudo id
uid=0(root) gid=0(root) группы=0(root)
User xzx may run the following commands on xzx-pc:
(ALL) NOPASSWD: /bin/apt-get, /sbin/reboot
(ALL : ALL) ALL
(ALL) ALL
но apt-get update выдает
E: Не удалось открыть файл блокировки /var/lib/apt/lists/lock - open (13: Permission denied)
E: Невозможно заблокировать каталог /var/lib/apt/lists/
W: Проблема при удалении файла /var/cache/apt/pkgcache.bin - RemoveCaches (13: Permission denied)
W: Проблема при удалении файла /var/cache/apt/srcpkgcache.bin - RemoveCaches (13: Permission denied)
pfg21, отредактировал вопрос. нужн чтобы приложение(которое для работы требует права суперпользователя) запускалось без приставки sudo (к примеру чтобы потом его можно было более просто вызвать из скрипта питона)