क्या मैं `sudo` के साथ चलने वाली स्क्रिप्ट के भीतर से US $ USER वैरिएबल को एक्सेस कर सकता हूं?


19

एक अजीब सवाल, मुझे पता है। यहाँ स्क्रिप्ट है:

echo $USER

यहाँ मैं इसे चलाने के लिए कमांड का उपयोग कर रहा हूँ:

sudo ./myscript.sh

अभी यह "रूट" प्रिंट करता है jon, लेकिन मैं चाहता हूं कि यह प्रिंट हो , मेरा उपयोगकर्ता नाम। क्या स्क्रिप्ट को बदलकर ऐसा करने का कोई तरीका है, न कि कमांड?


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

जवाबों:


28

के SUDO_USERबजाय पर्यावरण चर का उपयोग करें USER

sudoउपयोगकर्ता का नाम जो इसे SUDO_USERपर्यावरण चर में चलाता है :

ek@Io:~$ sudo sh -c 'echo $USER'
[sudo] password for ek:
root
ek@Io:~$ sudo sh -c 'echo $SUDO_USER'
ek

तो आप बस की जगह ले सकता $USERके साथ $SUDO_USERअपनी स्क्रिप्ट में:

echo $SUDO_USER

आगे की पढाई

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