บางโปรแกรมไม่พบเมื่อใช้กับ sudo


9

ฉันเพิ่งติดตั้งไปที่/usr/local/goและ~/.bashrcเพิ่มสายนี้:

export PATH=$PATH:/usr/local/go/bin

ตอนนี้goทำงานได้จากบรรทัดคำสั่ง แต่sudo goให้ฉัน:

$ sudo go
sudo: go: command not found
~
$ sudo echo $PATH
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/benjamin/algs4/bin:/usr/local/go/bin

คุณสามารถโพสต์ผลลัพธ์ของsudo echo $PATH
Manish Sinha

คำตอบ:


7

sudoคำสั่งมีenv_keepและenv_resetพารามิเตอร์ในsudoersไฟล์

คุณต้องแก้ไขการตั้งค่า env_keep sudo -Eของคุณหรือการใช้งาน


ในระบบ Debian-9 ของฉันsudo -Eไม่เก็บ$PATHตัวแปรไว้
อาร์คุง

3

แก้ไขไฟล์ / etc / sudoers เพิ่มเส้นทางที่ต้องการไปยังบรรทัดต่อไปนี้:

ค่าเริ่มต้น secure_path = / sbin: / bin: / usr / sbin: / usr / bin

ตัวอย่าง:

ค่าเริ่มต้น secure_path = / sbin: / bin: / usr / sbin: / usr / bin: / usr / local / sbin: / usr / local / bin


0

ตรวจสอบว่าคุณได้ตั้งค่านโยบายความปลอดภัยสำหรับ PATH ของคุณโดยใช้คำสั่งต่อไปนี้หรือไม่:

$ sudo sudo -V | grep PATH
Value to override user's $PATH with: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

sudo visudoถ้าเป็นเช่นนั้นทั้งปิดการใช้งานหรือเพิ่มโดยมี

ดู: ทำไมตัวแปร PATH แตกต่างกันเมื่อทำงานผ่าน sudo และ su ที่ Unix SE

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.