Tại sao sudo không thể tìm thấy lệnh sau khi tôi thêm nó vào PATH?


19

Tôi muốn thêm một số lệnh vào PATH để tôi có thể sử dụng chúng một cách thuận tiện, chẳng hạn như:

export $PATH = "$PATH:/opt/storm/bin"

nhưng đôi khi stormcần quyền root, nhưng khi tôi sử dụng nó sudo, Ubuntu không thể tìm thấy lệnh.

sudo storm nimbus

Làm thế nào tôi có thể tìm thấy các lệnh này khi tôi sử dụng sudo?


Quyền trên thư mục và tập tin đó là gì?
Sergiy Kolodyazhnyy

Câu trả lời:


29

Bạn phải thêm đường dẫn vào sudođường dẫn.

Chạy lệnh sudo visudo

bạn sẽ thấy một dòng như thế này:

Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:$

Bây giờ thêm đường dẫn lệnh của bạn ở đây và điều này sẽ hoạt động.

Ví dụ:

$ sudo storm
sudo: storm: command not found

Bây giờ thêm đường dẫn như trên:

$ sudo visudo 

secure_path="......:/opt/storm/bin"

lưu và thoát.

Bây giờ sudo stormsẽ chỉ hoạt động bình thường.

Lưu ý Bạn cũng nên thêm đường dẫn vào đường dẫn mặc định /etc/profile.


Cảm ơn rất nhiều cho cái này. Nó đã giúp và tôi học được từ đó!
darbehdar

0

Tôi nghĩ rằng bạn đã tạo bí danh ở cấp độ người dùng. Đó là lý do tại sao các phím tắt chỉ có sẵn ở cấp độ người dùng.

Bạn nên thêm dòng lệnh bí danh đó vào tệp .bashrc trong thư mục / root chứ không phải trong /home/user/.bashrc(this .bashrc tệp thuộc tài khoản người dùng không phải root).

Vì vậy, bạn có thể sử dụng lệnh bí danh của mình trực tiếp trong shell khi đăng nhập bằng root.


1
những gì về /etc/profile? Tôi thêm export $PATH = "$PATH:/opt/storm/bin"vào tập tin này, tôi nghĩ rằng đây là toàn cầu, nhưng tôi vẫn không thể tìm thấy lệnh này
roger

Có thể câu hỏi stackoverflow này có thể giải quyết vấn đề của bạn :)
Thú mỏ vịt ẩn danh
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.