我可以让`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
可能是你的用户名。)