我在 Ubuntu 16.04 上安装了 MATLAB R2017a。
从控制台,我能够运行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 身份运行。