我可以让`sudo`通过CLI跟随我的路径吗?

您可以编辑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 

当我使用sudo运行时,当我真的想要/mnt/e/usr/local/bin的版本时,它会在/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 

没有命令行选项可以覆盖sudoers设置的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 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. 

所以要么在sudoers设置exempt_group并将自己添加到该组,要么免除sudoers

 Defaults:rick !secure_path 

rick可能是你的用户名。)