$ LOGNAME और logname के बीच अंतर


12

जब echo $LOGNAMEया lognameकमांड सामान्य रूप से चलते हैं तो निम्न जैसा परिणाम मिलता है:

pandya@pandya-desktop:~$ echo $LOGNAME
pandya
pandya@pandya-desktop:~$ logname
pandya

तो, क्या उनके बीच कोई अंतर है?

जवाबों:


17

से पर्यावरण चर ,

$LOGNAMEजैसा है वैसा ही $USERदेता है

वर्तमान में लॉग-इन उपयोगकर्ता का नाम। यह चर सिस्टम द्वारा सेट किया गया है। आपको संभवतः इसका मान मैन्युअल रूप से नहीं बदलना चाहिए।

से man logname

logname - उपयोगकर्ता का लॉगिन नाम प्रिंट करें


Expained अलग तरह से इस्तेमाल किया निम्न उदाहरण से:

pandya@pandya-desktop:~$ sudo su
root@pandya-desktop:/home/pandya# echo $LOGNAME
root
root@pandya-desktop:/home/pandya# logname
pandya
root@pandya-desktop:/home/pandya# exit
exit
pandya@pandya-desktop:~$

यहां आप टर्मिनल में रूट के रूप में लॉगिन करने के बाद अंतर देख सकते हैं,

  • $LOGNAMEटर्मिनल में वर्तमान में लॉग-इन उपयोगकर्ता का नाम देता है (अर्थात root)
  • जबकि lognameप्रिंट उपयोगकर्ता का नाम जो सत्र में लॉग इन किया है (यानी pandya)

धन्यवाद। संबंधित unix.stackexchange.com/questions/446545/logname-no-login-name
टिम

6

उपयोगिता लॉगनेम 16.04 में टूट गया है, जाहिरा तौर पर उद्देश्य पर क्योंकि यह उस रिटर्न को हैक करना संभव है जो सुरक्षा दोष हो सकता है। https://bugzilla.gnome.org/show_bug.cgi?id=747046 मैं कुछ स्क्रिप्ट में लॉग इन का उपयोग कर रहा था, और इसे उपयोगी पाया क्योंकि यह हमेशा एक ही मूल्य (मेरा लॉगिन नाम) लौटाता था, चाहे मैं इसे कहां से बुला रहा था। मेरा खुद का स्तर या एक sudo मंगलाचरण से, जबकि पर्यावरण चर USER और $ LOGNAME नहीं है। मैं अपने कंप्यूटर में किसी को हैक करने और उसके मूल्य को संशोधित करने के बारे में चिंतित नहीं था। काश .... मुझे एक वर्कअराउंड मिल गया है। मैंने अपने होम डायरेक्टरी में एक फाइल बनाई है

echo $USER > ~/.logname

जब मैं अपना लॉग इन (जैसे बैश वैरिएबल g_logname को असाइन करना) एक्सेस करना चाहता हूं, तो मैं इस तरह से करता हूं:

declare g_logname="$(<~/.logname)";

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

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