Mengapa sudo tidak dapat menemukan perintah setelah saya menambahkannya ke PATH?


19

Saya ingin menambahkan beberapa perintah ke PATH sehingga saya dapat menggunakannya dengan nyaman, seperti:

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

tetapi terkadang stormmembutuhkan otoritas root, tetapi ketika saya menggunakannya sudo, Ubuntu tidak dapat menemukan perintah.

sudo storm nimbus

bagaimana saya bisa menemukan perintah ini ketika saya gunakan sudo?


Apa izin pada folder dan file itu?
Sergiy Kolodyazhnyy

Jawaban:


29

Anda harus menambahkan path ke sudopath.

Jalankan perintah sudo visudo

Anda akan melihat garis seperti ini:

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

Sekarang tambahkan jalur perintah Anda di sini dan ini akan berhasil.

Sebagai contoh:

$ sudo storm
sudo: storm: command not found

Sekarang tambahkan path seperti di atas:

$ sudo visudo 

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

Simpan dan keluar.

sekarang sudo stormhanya akan bekerja secara normal.

Catatan Anda juga harus menambahkan jalur ke jalur default di /etc/profile.


Terima kasih banyak untuk ini. Itu membantu dan saya belajar dari itu!
darbehdar

0

Saya pikir Anda telah membuat alias di tingkat pengguna. Itu sebabnya pintasan hanya tersedia di tingkat pengguna.

Anda harus menambahkan baris perintah alias itu ke file .bashrc di folder / root dan bukan di /home/user/.bashrc( file .bashrc ini milik akun pengguna, bukan root).

Sehingga Anda dapat menggunakan perintah alias Anda secara langsung di shell ketika login sebagai root.


1
bagaimana /etc/profile? Saya menambahkan export $PATH = "$PATH:/opt/storm/bin"dalam file ini, saya pikir ini bersifat global, tetapi saya masih tidak dapat menemukan perintah ini
roger

Mungkin pertanyaan stackoverflow ini dapat menyelesaikan masalah Anda :)
Anonymous Platypus
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.