यह मेरे हिसाब से काफी पेचीदा है, या कम से कम बहुत बार वांछित नहीं है।
मैं उसके बाद नहीं हूं :
के साथ पासवर्ड अक्षम करना
user ALL=(ALL) NOPASSWD: ALL
या एक समान चाल।
मुझे पता है कि sudo का पासवर्ड कैसे पढ़ें stdin
, और यह ठीक काम कर रहा है लेकिन आपको अभी भी संकेत मिलता है:
$ echo $PW | sudo -S whoami
[sudo] password for oz123: root
वह मैन पेज दिखाता है जिसका मैं उपयोग कर सकता हूं -p
।
$ echo $PW | sudo -S -p "foo " whoami
foo root
$ echo $PW | sudo -S -p " " whoami
root
एक सिंगल स्पेस काम करता है।
खाली स्ट्रिंग पास करने से काम नहीं लगता ...
$ echo $PW | sudo -S -p "" whoami
[sudo] password for oz123: root
तो सवाल यह है:
आप किसी रिक्त स्ट्रिंग को कैसे मान्य मान के रूप में परिभाषित करते हैं -p
?
अद्यतन - sudo संस्करण
$ sudo --version
Sudo version 1.8.21p2
Sudoers policy plugin version 1.8.21p2
Sudoers file grammar version 46
Sudoers I/O plugin version 1.8.21p2
(उबंटू पर 18.04)
नहीं,
—
Oz123
$ echo $PW | sudo -S -p '\0' whoami
देता है\0root
मेरे पास सूडो 1.8.22 है और -p के साथ एक खाली स्ट्रिंग निर्दिष्ट कर सकता है (ओपनएसयूएसई 15.0)। आप कौन सा संस्करण उपयोग कर रहे हैं?
—
Luuk
यदि आप भी उपयोग कर रहे हैं, तो आप
—
meuh
-S
'2> / dev / null' (किसी भी त्रुटि संदेश के साथ) के साथ संकेत पुनर्निर्देशित कर सकते हैं।
वास्तविक समस्या क्या है जिसे आप हल करने का प्रयास कर रहे हैं? आप क्यों चाहते हैं कि प्रॉम्प्ट दिखाई न दे?
—
जेनी डी
\0
की अनुमति है?