Posso fazer 'sudo' seguir meu caminho via CLI?

3

Você pode editar o arquivo sudoers e definir secure_path para corresponder ao seu caminho. Isso está documentado em Unix & amp; Linux .

Existe um switch de linha de comando que eu posso passar para sudo de tal forma que ele use o caminho que eu configurei? Por exemplo:

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

Quando executo usando sudo , estou encontrando a cópia errada do script em /usr/local/bin quando realmente quero a versão em /mnt/e/usr/local/bin .

Se eu não quiser manter o caminho no arquivo sudoers , há um switch que eu possa passar para sudo para usar meu caminho para encontrar o comando correto?

    
por WinEunuuchs2Unix 08.03.2018 / 03:31

1 resposta

6

O Ubuntu por padrão já possui secure_path set:

~ 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

Não há nenhuma opção de linha de comando que possa substituir secure_path definido em sudoers .

Em 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.

Portanto, defina exempt_group em sudoers e adicione-se a esse grupo ou isente-se de sudoers :

Defaults:rick !secure_path

( rick presumivelmente é seu nome de usuário.)

    
por muru 08.03.2018 / 03:54