मैं सूडो को कैसे उर्फ ​​पास कर सकता हूं?


38

मैं में मेरी उपनाम डाल की कोशिश की है ~/.bash_profile, ~/.bashrc, /etc/profile, और /etc/bashrc

मैं अभी भी निम्नलिखित को निष्पादित करने में असमर्थ हूं:

alias zf2="php public/index.php"

और फिर निष्पादित करें:

sudo zf2 orm:info

इस समस्या से ऐसा लगता है कि मैं एक कमांड के रूप में विस्कोस का उपयोग करके एक उपनाम निर्दिष्ट करने में असमर्थ हूं - जो एक वाक्यविन्यास त्रुटि का कारण बनता है।

इसलिए मैं कॉल करने में असमर्थ हूं:

sudo zf2 orm:info

हालाँकि, मैं / usr / share / script / zf2 पर एक स्क्रिप्ट बनाने में सक्षम था जिसमें शामिल हैं:

#!/bin/bash

alias zf2="php public/index.php"
zf2 $1

और इस स्क्रिप्ट को visudo में कमांड के रूप में जोड़ें। जब यह स्क्रिप्ट अंतिम उपयोगकर्ता के पेट में होती है तो मैं निष्पादित करने में सक्षम होता हूं

zf2 orm:info

मेरे पास अलग-अलग उपनाम हैं जैसे zf2मुझे अंतिम उपयोगकर्ता को उजागर करने की आवश्यकता है। मैं स्क्रिप्ट के संग्रह के बजाय अन्य को बनाए रखना पसंद करूंगा।


1
दुर्भाग्य से मैं दृश्य में उपनाम का उपयोग करना चाहता हूं और मैं असमर्थ हूं।
माइकल नीनो

2
यह संभव नहीं है। उपनाम शेल (आपके मामले में बैश) द्वारा संभाला जाता है और आवेदन पर भेजे जाने से पहले विस्तारित होता है। sudoखुद को उपनाम के बारे में कुछ नहीं पता है।
स्टीवन

2
क्योंकि @Steven तकनीकी रूप से सही है, तो आप स्पष्ट करना चाहिए कि क्या आप बस उपनाम का विस्तार करना चाहते से पहले करने के लिए sudoलाइन पारित किया जा रहा है, या आप उपनाम ऊंचा वातावरण में विस्तार किया जाए या नहीं। पैंडेंट्री केवल आंखों को लुढ़काने का एक तरीका नहीं है। (वाह, लेकिन वह आखिरी वाक्य बिल्कुल भी कोषेर नहीं दिखता है।)
can-ned_food


1
इसके साथ कोशिश करेंsudo -E
डेनिस डे बर्नार्डी

जवाबों:


66

विडंबना यह है कि समाधान sudoएक उपनाम से कॉल करना है।

alias sd="sudo "

नोट: अनुशंसित नहीं है, आप उपनाम का नाम दे सकते हैं sudo:alias sudo="sudo "

बैश संदर्भ मैनुअल (उपनाम)

यदि उपनाम के मान का अंतिम वर्ण रिक्त है, तो उपनाम के बाद अगला कमांड शब्द भी उपनाम के विस्तार के लिए जांचा जाता है।


7
मैं शायद ऐसे कारण देख सकता हूं कि कोई व्यक्ति किसी भी सिस्टम के लिए डिफ़ॉल्ट के रूप में ऐसा क्यों नहीं करेगा। सुविधा और अपेक्षा के अनुसार, उन्नत विशेषाधिकार के साथ अधिक सावधान रहना।
Pysis

5
alias sd="sudo "maychance?
द नैट

अपने उपनामों की समीक्षा करने के बाद मैंने देखा कि मेरे पास alias sudo="sudo "अंतिम उपयोगकर्ता वातावरण नहीं था। इसका उत्तर है
माइकल नीनो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.