Một số chương trình không được tìm thấy khi sử dụng với sudo


9

Tôi chỉ cần cài đặt đi đến /usr/local/go, và ở ~/.bashrcthêm dòng này:

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

Bây giờ gohoạt động từ dòng lệnh, nhưng sudo gocho tôi:

$ 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

Bạn có thể đăng kết quả củasudo echo $PATH
Manish Sinha

Câu trả lời:


7

sudolệnh có env_keepenv_resettham số trong sudoerstập tin.

Bạn phải chỉnh sửa cài đặt env_keep hoặc sử dụng sudo -E.


Trên hệ thống Debian-9 của sudo -Etôi không giữ $PATHbiến.
Ark-kun

3

Chỉnh sửa tập tin / etc / sudoers. Thêm các đường dẫn mong muốn vào dòng sau:

Mặc định safe_path = / sbin: / bin: / usr / sbin: / usr / bin

thí dụ:

Mặc định safe_path = / sbin: / bin: / usr / sbin: / usr / bin: / usr / local / sbin: / usr / local / bin


0

Kiểm tra xem bạn đã thiết lập chính sách bảo mật cho PATH của mình chưa bằng lệnh sau:

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

Nếu vậy, vô hiệu hóa nó hoặc thêm nó ở đó bằng cách sudo visudo.

Xem: Tại sao các biến PATH khác nhau khi chạy qua sudo và su? tại Unix SE

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.