ทำไม sudo หาคำสั่งไม่ได้หลังจากที่ฉันเพิ่มไปที่ PATH?


19

ฉันต้องการเพิ่มคำสั่งลงใน PATH เพื่อให้สามารถใช้งานได้สะดวกเช่น:

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

แต่บางครั้งstormต้องการสิทธิ์รูท แต่เมื่อฉันใช้กับsudoUbuntu ไม่สามารถหาคำสั่งได้

sudo storm nimbus

วิธีการที่ฉันสามารถค้นหาคำสั่งเหล่านี้เมื่อผมใช้sudo?


โฟลเดอร์และไฟล์นั้นได้รับอนุญาตอะไร
Sergiy Kolodyazhnyy

คำตอบ:


29

คุณต้องเพิ่มเส้นทางไปยังsudoเส้นทาง

เรียกใช้คำสั่ง sudo visudo

คุณจะเห็นบรรทัดดังนี้:

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

ตอนนี้เพิ่มเส้นทางของคำสั่งของคุณที่นี่และสิ่งนี้จะทำงาน

ตัวอย่างเช่น:

$ sudo storm
sudo: storm: command not found

ตอนนี้เพิ่มเส้นทางดังนี้:

$ sudo visudo 

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

บันทึกและออก.

ตอนนี้sudo stormจะทำงานได้ตามปกติ

หมายเหตุคุณควรเพิ่มเส้นทางไปยังเส้นทางเริ่มต้น/etc/profileด้วย


ขอบคุณมากสำหรับสิ่งนี้ มันช่วยและฉันเรียนรู้จากสิ่งนั้น!
darbehdar

0

ฉันคิดว่าคุณได้สร้างนามแฝงในระดับผู้ใช้ นั่นเป็นเหตุผลที่ทางลัดมีให้บริการในระดับผู้ใช้เท่านั้น

คุณควรเพิ่มบรรทัดคำสั่ง alias ไปยังไฟล์. bashrc ใน / โฟลเดอร์ root และไม่อยู่ใน /home/user/.bashrc(this .bashrc ไฟล์นี้เป็นของบัญชีผู้ใช้ที่ไม่ใช่รูท)

เพื่อให้คุณสามารถใช้คำสั่ง alias ของคุณโดยตรงในเชลล์เมื่อล็อกอินเป็น root


1
แล้ว/etc/profileไงล่ะ ฉันเพิ่มexport $PATH = "$PATH:/opt/storm/bin"ในไฟล์นี้ฉันคิดว่านี่เป็นทั่วโลก แต่ฉันยังไม่พบคำสั่งนี้
roger

อาจเป็นคำถาม stackoverflow นี้สามารถแก้ปัญหาของคุณได้ :)
35732 Platypus Anonymous Anonymous
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.