बाश सुडो कमांड नहीं मिला


33

मैंने टर्नकी लिनक्स रेडमीइन का उपयोग करके एक वीएम सेट किया है और मैं एसएसएच में सर्वर में कुछ और आइटम स्थापित करने की कोशिश कर रहा हूं।

यह sudo कमांड को पहचानता प्रतीत नहीं होता है। हर बार जब मैं कुछ सूद करने की कोशिश करता हूं तो मुझे एक त्रुटि मिलती है:

 -bash: sudo: command not found

मैंने कहीं और लिखा है कि 'कहां सूदो' और आउटपुट था:

 sudo:

जवाबों:


20

यह http://www.turnkeylinux.org/redmine से दिखता है , जैसे Redmine, Ubuntu के विपरीत, डिफ़ॉल्ट रूप से sudo का उपयोग नहीं करता है। SSH में आप किस उपयोगकर्ता नाम का उपयोग कर रहे हैं? यदि यह है root, तो आपको उपयोग करने की आवश्यकता नहीं है sudo, जैसा कि जब आप RedHine सिस्टम में SSHed करते हैं , तो आप जो कुछ भी करते हैं root। यदि यह कुछ और है, जैसे admin, तो आप suएक rootशेल प्राप्त करने के लिए कमांड का उपयोग करने का प्रयास कर सकते हैं जिसमें कमांड चलाने के लिए root


जब स्क्रिप्ट में सुडो की आज्ञा हो तो क्या करें। मुझे mkusb के साथ होता है। भविष्य की सुविधा के लिए सुडो स्थापित करना बेहतर है।
लव ग्रोवर

40

शायद यह स्थापित नहीं है? अपना पैकेज मैनेजर खोलें और सुडो पैकेज स्थापित करें ।


2
यह स्थापित नहीं किया गया था! धन्यवाद। मैं लिनक्स के लिए बहुत नया हूं और बस यह माना जाता है कि यह सभी प्रतिष्ठानों पर था। क्या मुझे सिर्फ sudo पैकेज या sudo-ldap की आवश्यकता है?

2
आपको sudo-ldap पैकेज की आवश्यकता नहीं है। सूदो मेरे कंप्यूटर पर ठीक काम करता है और मेरे पास sudo-ldap स्थापित नहीं है।
अज़ेंडेल

6

सबसे पहले अपने रूट अकाउंट में लॉगिन करें। फिर

$ apt-get install sudo

अपने मौजूदा उपयोगकर्ता को समूह में जोड़ें sudo

$ sudo adduser <user> sudo

आपको तब लॉगिन करना चाहिए <user>, और sudoकमांड होना चाहिए।


5

पूर्ण पथ का उपयोग करने का प्रयास करें

/usr/bin/sudo

यदि वह कमांड काम करता है तो ~ / .bashrc में अपने env वेरिएबल PATH में / usr / bin / शामिल करें

echo "export PATH="$PATH:/usr/bin"" >> ~/.bashrc

उम्मीद है कि काम करता है ..


4
यह समस्या होने की बहुत संभावना नहीं है; /usr/binलगभग निश्चित रूप से अपने डिफ़ॉल्ट पथ में होने जा रहा है। समस्या, जैसा कि अन्य उत्तरों और टिप्पणियों से संकेत मिलता है, यह है कि sudoकमांड बिल्कुल भी स्थापित नहीं था।
कीथ थॉम्पसन

2

त्रुटि इसलिए होती है क्योंकि आप जिस बाइनरी को कमांड लाइन से कॉल करने का प्रयास कर रहे हैं वह वर्तमान उपयोगकर्ता के PATH चर का केवल एक हिस्सा है, लेकिन रूट उपयोगकर्ता के PATH का हिस्सा नहीं है।

आप जिस बाइनरी तक पहुँचने का प्रयास कर रहे हैं, उसका पता लगाकर आप इसे सत्यापित कर सकते हैं। मेरे मामले में मैं "बेहूदा-एनजी" कॉल करने की कोशिश कर रहा था। तो मैं भागा,

$ which bettercap-ng

output: /home/user/work/bin/bettercap

मैंने जाँच की कि क्या यह स्थान मेरे रूट उपयोगकर्ता के PATH का हिस्सा है।

$ sudo env | grep ^PATH

उत्पादन: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin

इसलिए सूडो को बाइनरी नहीं मिल रही है जिसे मैं कमांडलाइन से कॉल करने की कोशिश कर रहा हूं। इसलिए त्रुटि कमांड नहीं मिला।

नीचे दिए गए बाइनरी को कॉल करते समय आप वर्तमान उपयोगकर्ता के पैट का उपयोग करने के लिए sudo को निर्देशित कर सकते हैं।

$ sudo -E env "PATH=$PATH" [command] [arguments]

वास्तव में, कोई इससे बाहर एक उपनाम बना सकता है:

$ alias mysudo='sudo -E env "PATH=$PATH"'

मूल सूडो के स्थान पर उपनाम उर्फ ​​सूडो का नाम देना भी संभव है।

कृपया इस वीडियो को चरण दर चरण समाधान के लिए देखें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.