Win*_*nix 4 command-line sudo paths
您可以编辑sudoers文件并设置secure_path以匹配您的路径。这在Unix & Linux 中有记录。
是否有我可以传递的命令行开关sudo,以便它使用我设置的路径?例如:
rick@alien:~$ sudo echo $PATH
/home/rick/bin:/home/rick/.local/bin:/mnt/e/bin:/mnt/e/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
???????????????????????????????????????????????????????????????????????????????
rick@alien:~$ echo $PATH
/home/rick/bin:/home/rick/.local/bin:/mnt/e/bin:/mnt/e/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
???????????????????????????????????????????????????????????????????????????????
rick@alien:~$ sudo which auto-brightness-config
/usr/local/bin/auto-brightness-config
???????????????????????????????????????????????????????????????????????????????
rick@alien:~$ which auto-brightness-config
/mnt/e/usr/local/bin/auto-brightness-config
???????????????????????????????????????????????????????????????????????????????
rick@alien:~$ sudo locate auto-brightness-config
/Desktop/Link to auto-brightness-config
/home/rick/Pictures/display-auto-brightness-config 1.png
/mnt/e/Desktop/Link to auto-brightness-config
/mnt/e/usr/local/bin/.auto-brightness-config
/mnt/e/usr/local/bin/Link to auto-brightness-config
/mnt/e/usr/local/bin/auto-brightness-config
/usr/local/bin/.auto-brightness-config
/usr/local/bin/Link to auto-brightness-config
/usr/local/bin/auto-brightness-config
Run Code Online (Sandbox Code Playgroud)
当我使用sudo它运行/usr/local/bin时,当我真正想要/mnt/e/usr/local/bin.
如果我不想维护sudoers文件中的路径,是否可以传递一个开关sudo以使用我的路径来查找正确的命令?
Ubuntu 默认已经secure_path设置:
~ sudo -l
Matching Defaults entries for muru on muru-1604:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User muru may run the following commands on muru-1604:
(ALL : ALL) ALL
Run Code Online (Sandbox Code Playgroud)
还有就是可以覆盖任何命令行选项secure_path中的设置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
environment 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.
Run Code Online (Sandbox Code Playgroud)
因此,无论设置exempt_group在sudoers和自己从添加到该组,或免除自己sudoers:
Defaults:rick !secure_path
Run Code Online (Sandbox Code Playgroud)
(rick大概是你的用户名。)