Normalmente, isso é definido pela opção secure_path
em /etc/sudoers
. De 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 environ‐
ment 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.
Para executar comandos que não estão no padrão $PATH
, você pode
-
Use o caminho completo:
sudo ~/bin/my-command
; ou -
Adicione o diretório contendo o comando para
secure_path
. Executesudo visudo
e edite a linha do caminho seguro:Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/youruser/bin/"
Salve o arquivo e, da próxima vez que você executar
sudo
, o diretório~/bin
estará em$PATH
.