Я могу заставить '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 это находит неправильную копию сценария в /usr/local/bin когда я действительно хочу версию в /mnt/e/usr/local/bin .

Если я не хочу поддерживать путь в sudoers файл, там переключатель, которому я могу передать sudo использовать мой путь для нахождения правильной команды?

3
задан 8 March 2018 в 05:31

1 ответ

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

Нет никакого параметра командной строки, который может переопределить 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.

Так любой набор exempt_group в sudoers и добавьте себя к той группе или освободите себя от sudoers:

Defaults:rick !secure_path

(rick по-видимому, быть Вашим именем пользователя.)

6
ответ дан 1 December 2019 в 15:22

Другие вопросы по тегам:

Похожие вопросы: