কোনও রুট ব্যবহারকারীর নাম রাখতে হবে না "রুট"। whoamiব্যবহারকারীর আইডি সহ প্রথম ব্যবহারকারীর নাম দেয় 0। $USERলগ ইন থাকা ব্যবহারকারীর নাম রয়েছে, এতে ব্যবহারকারীর আইডি থাকতে পারে 0তবে আলাদা নাম থাকতে পারে।
অ্যাকাউন্টটি রুট হিসাবে লগ ইন হয়েছে কিনা তা যাচাই করার একমাত্র নির্ভরযোগ্য প্রোগ্রাম:
id -u
আমি কার্যকর ব্যবহারকারী আইডির -uজন্য ব্যবহার করি , আসল ব্যবহারকারী আইডির জন্য নয় । অনুমতিসমূহ হয় নির্ধারিত দ্বারা কার্যকর ব্যবহারকারী আইডি, না বাস্তব অন্যতম।-r
টেস্ট
/etc/passwd0প্রদত্ত ক্রমে ব্যবহারকারী আইডি সহ নিম্নলিখিত ব্যবহারকারীর নামগুলি অন্তর্ভুক্ত করে :
rootx
root2
হিসাবে লগ ইন root2, পরবর্তী ফলাফল দেয়:
whoami: rootx
echo $USER: root2(প্রোগ্রামটি যদি খালি পরিবেশে শুরু করা হয় তবে এটি একটি খালি স্ট্রিং দেয় env -i sh -c 'echo $USER')
id -u: 0
আপনি দেখতে পাচ্ছেন যে অন্যান্য প্রোগ্রামগুলি এই পরীক্ষায় ব্যর্থ হয়েছে, কেবল id -uপাস করেছে।
আপডেট হওয়া স্ক্রিপ্টটি এরকম দেখাচ্ছে:
#!/bin/bash
if ! [ $(id -u) = 0 ]; then
echo "I am not root!"
exit 1
fi