উত্তর:
পরিবেশ পরিবর্তনশীল থেকে ,
$LOGNAME$USERযা দেয় তেমন
বর্তমানে লগ-ইন করা ব্যবহারকারীর নাম। এই পরিবর্তনশীল সিস্টেম দ্বারা সেট করা হয়। আপনার সম্ভবত এটির মানটি ম্যানুয়ালি পরিবর্তন করা উচিত নয়।
থেকে man 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)ইউটিলিটি লগ-নেমটি 16.04-এ ভাঙা হয়েছে, স্পষ্টতই উদ্দেশ্য অনুসারে কারণ এটির যে মূল্য ফেরত দেয় তা হ্যাক করা সম্ভব, যা কোনও সুরক্ষা ত্রুটি হতে পারে। https://bugzilla.gnome.org/show_bug.cgi?id=747046 আমি কিছু স্ক্রিপ্টে লগ-নাম ব্যবহার করছিলাম এবং এটি দরকারী বলে মনে হয়েছিল কারণ এটি সর্বদা একই মান (আমার লগইন নাম) ফেরত দিয়েছিল যে আমি এটি থেকে ফোন করছি কিনা আমার নিজস্ব স্তর বা একটি sudo অনুরোধ থেকে, যেখানে পরিবেশের ভেরিয়েবলগুলি $ USER এবং O LOGNAME দেয় না। কেউ আমার কম্পিউটারে হ্যাক করে এবং এটির মানটি সংশোধন করে নিয়ে আমি উদ্বিগ্ন ছিলাম না। হায়রে .... আমি একটি কাজ খুঁজে পেয়েছি। আমি আমার হোম ডিরেক্টরিতে এটির মতো একটি ফাইল তৈরি করেছি
echo $USER > ~/.logname
যখন আমি আমার লগনামটি অ্যাক্সেস করতে চাই (উদাহরণস্বরূপ, ব্যাশ ভেরিয়েবল g_logname নির্ধারণ করে), আমি এভাবে এটি করি:
declare g_logname="$(<~/.logname)";
এটি আমার জন্য, আমার হিসাবে বা মূল স্তরে সুডোর মাধ্যমে কাজ করে যা আমার হোম ডিরেক্টরি হিসাবে "~" এর কার্যনির্বাহী বজায় রাখে। আমি সিস্টেমে প্রতিটি ব্যবহারকারীর হোম ডিরেক্টরিতে একটি। ফাইল ফাইল তৈরি করতে পারি। হ্যাঁ, কেউ আমার কম্পিউটারে হ্যাক করতে পারে এবং এই ফাইলগুলি পরিবর্তন করতে পারে তবে আমি সে সম্পর্কে সত্যিই চিন্তিত নই। আমি কেবল আমার স্ক্রিপ্টগুলি কাজ করতে চাই।