क्या `सू` करने के लिए एक ही लाइन कमांड है?


13

मैं एक suसाथ कर सकते हैं su <username>और यह मेरे पासवर्ड के लिए पूछता है। क्या suइस तरह के लिए एक पासवर्ड पैरामीटर है जो मुझे पासवर्ड के लिए प्रेरित नहीं करेगा?

जैसे su <username> -p <password>


ऐसा लगता है कि यह प्रश्न सुपरसर्वर के लिए उचित रूप से फिट बैठता है: superuser.com :-)
HongboZhu

आप यहाँ देख सकते हैं: stackoverflow.com/questions/233217/pass-password-to-su-sudo-ssh या यहाँ: stackoverflow.com/questions/715908/…
HongboZhu

1
मैंने इसे superuserयहाँ से प्राप्त किया, superuser.com/questions/67765/…
alvas

जवाबों:


12

यदि आप एक स्क्रिप्ट लिखना चाहते हैं जो एक अलग उपयोगकर्ता के रूप में कुछ इस तरह से काम करती है, हालांकि यह "पासवर्ड" शब्द को आउटपुट करता है बिना मानक के एक नई पंक्ति के।

su - username <<!
enterpasswordhere
enter commands to run as the new user
!

यदि आपके पास 1234 के पासवर्ड वाला एक उपयोगकर्ता है, जो कि किसी भी तरह के फ़्रेड के होम डायरेक्टरी को fred के रूप में प्राप्त करना चाहता है, तो पासवर्ड स्ट्रिंग प्रदर्शित किए बिना, ऐसा लगेगा

su - fred <<! >/dev/null 2>&1
1234
whoami > /dev/tty
ls > /dev/tty
!

2
हम्म, 'स्टैंडर्ड
टू ए ट्टी

मुझे एक ही त्रुटि
मिलती है

8
त्रुटि हो रही है: su: must be run from a terminal
अभिषेक कश्यप

5

मैं विश्वास करता हूं, ऐसा नहीं है और यह एक अच्छा विचार नहीं होगा। यहाँ क्यों है:
यदि आप एक कमांड में पासवर्ड लिखते हैं जैसे su <username> -p <password>, यह आपके बैश इतिहास में सादे पाठ में संग्रहीत किया जाएगा। यह निश्चित रूप से एक बड़ा सुरक्षा मुद्दा है।

यदि आपको स्वचालित तरीके से कमांड su(या sudo) चलाने की आवश्यकता है , तो बिना suया sudoरन के एक शेल्स्क्रिप्ट शामिल करेंsu <username> script.sh


1
su root script अभी भी पासवार्ड दर्ज करने की आवश्यकता है।
दाई काक्सियन

@DaiKaixian हाँ, लेकिन यह कहीं भी सहेजा नहीं गया है और कोई भी इसे नहीं पढ़ सकता है
Wayne_Yux

2
आप कुछ इस तरह की कोशिश कर सकते हैं:। echo <passwd> | sudo -S <command-line>हालांकि यह सुरक्षित नहीं है, लेकिन यह काम करता है।
दाई काक्सियन

1
मेरे उत्तर की पूरी बात यह है, कि यह कमांड में पासवर्ड लिखने के लिए सेव नहीं है। इसलिए मैं सलाह देता हूं कि ऐसा करें
Wayne_Yux

-3

यदि आप एक नए उपयोगकर्ता के रूप में कुछ विशिष्ट कमांड निष्पादित करना चाहते हैं, तो निम्न कमांड का उपयोग करें:
sudo -u {username} {command to be executed as the new user}


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