Nedenini (farklı) çalıştırarak kontrol edebilirsiniz sudo sudo -V.
Örneğin Linux çalıştırmasında:
$ sudo sudo -V | grep PATH
Value to override user's $PATH with: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Not: Açık MacOS / BSD, sadece çalıştırın: sudo sudo -V.
Bazı Linux dağıtımlarında varsayılan güvenlik politikası eklentisi nedeniyle yukarıdaki liste kısıtlanmıştır.
Bu daha ayrıntılı olarak açıklanmıştır man sudoers:
Eğer secure_pathseçenek ayarlanırsa, değeri için kullanılacak PATHortam değişkeni.
secure_path- Her komut için sudo'dan çalıştırılan yol. Sudo çalıştıran insanlara aklı başında bir PATHortam değişkenine sahip olmalarına güvenmiyorsanız, bunu kullanmak isteyebilirsiniz.
Başka bir kullanım, “kök yolun” “kullanıcı yolundan” ayrı olmasını istiyorsanız. exempt_groupSeçenek tarafından belirtilen gruptaki kullanıcılar bundan etkilenmez secure_path. Bu seçenek varsayılan olarak ayarlanmamış.
Bu durumda, sudo visudoyapılandırma dosyasını çalıştırarak ve düzenleyerek ve değiştirerek secure_path(ayrı yol ekleyerek :) veya kullanıcıyı içine ekleyerek exempt_group( secure_pathseçeneklerden etkilenmeyeceksiniz ) değiştirebilirsiniz.
Veya kullanıcının PATHgeçici mesajını geçmek için koşabilirsiniz:
sudo env PATH="$PATH" my_command
ve şunu kontrol edebilirsiniz:
sudo env PATH="$PATH" env | grep ^PATH
Ayrıca bkz: Nasıl yapmak sudokorumak $PATH?
Ortamın farklı olmasının diğer bir nedeni de, dosyanızda etkin seçeneği etkinleştirilmiş sudoolmanız olabilir . Bu, komutların yeni, minimal bir ortamla yürütülmesine neden olur.env_resetsudoers
Bu nedenle , kullanıcı ortam değişkenlerinizi korumak için env_keepseçeneği ( güvenlik nedeniyle önerilmez ) kullanabilirsiniz:
Defaults env_reset
Defaults env_keep += "PATH PYTHONPATH"