Запуск исполняемого файла с sudo при запуске - команда не найдена

Итак, есть программа, которую я разрабатываю, и чтобы использовать все ее функции, мне нужно, чтобы она работала с привилегиями root - иначе она не сможет получить доступ к / dev / spidev0 +0,0. Мне нужно, чтобы он запускался при запуске системы с привилегиями root.

Я создал скрипт, который переходит в каталог, содержащий мой исполняемый файл, и запускает экземпляр терминала, передавая команду для запуска исполняемого файла в качестве аргумента, как в

#!/bin/bash
cd /home/username/app/build
gnome-terminal -- "sudo ./app"

и поместил его в приложения запуска. После перезагрузки платы я получаю экземпляр терминала с сообщением об ошибке «нет такого файла или каталога». Все идет гладко, хотя, я должен удалить часть "sudo". Проблема в том, что мне нужно "sudo".

sudo ./app прекрасно работает, если используется в терминале, когда система уже запущена. Я также попытался поместить копию моего исполняемого файла в / usr / bin и / sbin и запустить их через скрипт с помощью терминала gnome - "sudo app" , но безрезультатно.

Как правильно запустить исполняемый файл при запуске с привилегиями root, если это вообще возможно? Моя версия Ubuntu - 18.04 LTS, если она имеет какое-либо вещество.

1
задан 19 June 2020 в 22:51

1 ответ

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

gnome-terminal -- sudo ./app

, он работал отлично. Также он запустился без запроса пароля, добавив строку

ALL ALL=(root) NOPASSWD: /home/username/app/build/app

в / etc / sudoers , поэтому конечная цель по этому вопросу была достигнута.

0
ответ дан 30 July 2020 в 22:25

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

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