Tôi cần chạy một chương trình được cài đặt trên / opt / godi / sbin (một thư mục tùy chỉnh). Nếu tôi thêm thư mục đó vào PATH của mình, bằng cách thêm dòng sau vào tệp .bashrc của tôi
export PATH=$PATH:/opt/godi/bin:/opt/godi/sbin
sau đó tôi có thể cố gắng chạy lệnh tốt (ngoại trừ việc nó bị lỗi vì nó cần sudo). Tuy nhiên, khi tôi cố gắng sử dụng sudo:
sudo godi_console
Tôi nhận được lỗi sau đây
sudo: godi_console: command not found
Kiểm tra biến PATH sau khi sử dụng sudo cho thấy rằng nó không bao gồm cùng một PATH mà tôi có như một người dùng bình thường:
$ sudo sh
# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Tại sao PATH không giống nhau? Tôi có làm điều gì sai? Tôi đang sử dụng Debian Jessie và thật không may, tôi không thể khắc phục được vấn đề bằng cách chuyển sudo liên kết tuyệt đối đến godi_console vì chính godi_console cũng phụ thuộc vào PATH được đặt chính xác.
secure_path
và / hoặc env_reset được định cấu hình như trường hợp trong nhiều sudo
triển khai như trên Debian.
sudo -E godi_console
.-E
có nghĩa là "giữ gìn môi trường".