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?

roger
sumber
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.

Maythux
sumber
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.

Platypus Anonim
sumber
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