При запущении программ, поскольку не работает sudo

Установка инструментов и другой командной строки использования в Ubuntu 18.04 с sudo работает отлично. пример: sudo apt install ... работы отлично. Рабочие инструменты и программы через командную строку как sudo не работают вообще. При запущении тех же программ и инструментов, поскольку обычный пользователь работает отлично. Пример: start gtkwave поскольку обычный пользователь заставляет gtkwave GUI открыться. Запустите gtkwave как sudo, просит пароль и затем заканчивается в: sudo: gtkwave: command not found.

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

Это, возможно, потому что инструменты/программы, не работающие как sudo, не установлены в общих папках Linux как /bin или /usr/bin но как программы под /opt (они добавляются к пути, и необходимые среды установили)?

У кого-либо есть какая-либо идея, почему это происходит?

2
задан 28 December 2018 в 19:45

1 ответ

По умолчанию, sudo поиски программ с помощью его собственного secure_path это определяется в /etc/sudoers файл. От man sudoers:

 secure_path   Path used for every command run from sudo.  If you don't
               trust the people running sudo to have a sane PATH environ‐
               ment variable you may want to use this.  Another use is if
               you want to have the “root path” be separate from the “user
               path”.  Users in the group specified by the exempt_group
               option are not affected by secure_path.  This option is not
               set by default.

Обратите внимание на это несмотря на последнюю строку там, Ubuntu по умолчанию /etc/sudoers действительно устанавливает его:

Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

так ни один пользователь вызова PATH ни корень PATH произведет, расположены ли программы при использовании sudo.

Если Вы действительно хотите программы в местоположениях такой как /opt быть исполняемым файлом через sudo, Вы должны будете также

  • используйте полный путь, например. sudo /opt/somepath/bin/prog

  • измените sudoers secure_path для включения местоположений, - если Вы решаете сделать это, используйте sudo visudo поймать любые синтаксические ошибки (еще Вы рискуете блокировать себя из sudo в целом).

Однако необходимо ли, вероятно, читать, Почему пользователи никогда не должны использовать нормальный sudo для запущения графических приложений? перед продолжением.

1
ответ дан 2 December 2019 в 04:39

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

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