![Невозможно открыть MATLAB с помощью sudo в Ubuntu 16.04](https://rvso.com/image/1157151/%D0%9D%D0%B5%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%20%D0%BE%D1%82%D0%BA%D1%80%D1%8B%D1%82%D1%8C%20MATLAB%20%D1%81%20%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E%20sudo%20%D0%B2%20Ubuntu%2016.04.png)
У меня установлен MATLAB R2017a на Ubuntu 16.04.
Из консоли я могу запустить matlab
, успешно запустив программное обеспечение. Однако если я запущу sudo matlab
вместо этого , я получу следующую ошибку:
sudo: matlab: command not found
Я получил тот же ответ, запустив сначала , sudo su
а затем matlab
.
Как это возможно, что я могу запустить его только без sudo
? Есть ли sudo
конкретный PATH для обновления?
решение1
Да, sudo
есть свой secure_path
. От 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
).
Если вы решите изменить его, не забудьте использовать visudo
вместо него свой обычный редактор, чтобы не оказаться в затруднительном положении в случае синтаксических ошибок.
Лучшим вариантом может быть создание символической ссылки откуда-то, что уже есть в Ubuntu, sudo
secure_path
например
$ ls -ld $(which matlab)
lrwxrwxrwx 1 root root 35 Apr 11 2017 /usr/local/bin/matlab -> /usr/local/MATLAB/R2017a/bin/matlab
Лучше всего настроить разрешения устройства так, чтобы не приходилось запускать его matlab
как root.