কোনও রুট ব্যবহারকারীর নাম রাখতে হবে না "রুট"। whoami
ব্যবহারকারীর আইডি সহ প্রথম ব্যবহারকারীর নাম দেয় 0
। $USER
লগ ইন থাকা ব্যবহারকারীর নাম রয়েছে, এতে ব্যবহারকারীর আইডি থাকতে পারে 0
তবে আলাদা নাম থাকতে পারে।
অ্যাকাউন্টটি রুট হিসাবে লগ ইন হয়েছে কিনা তা যাচাই করার একমাত্র নির্ভরযোগ্য প্রোগ্রাম:
id -u
আমি কার্যকর ব্যবহারকারী আইডির -u
জন্য ব্যবহার করি , আসল ব্যবহারকারী আইডির জন্য নয় । অনুমতিসমূহ হয় নির্ধারিত দ্বারা কার্যকর ব্যবহারকারী আইডি, না বাস্তব অন্যতম।-r
টেস্ট
/etc/passwd
0
প্রদত্ত ক্রমে ব্যবহারকারী আইডি সহ নিম্নলিখিত ব্যবহারকারীর নামগুলি অন্তর্ভুক্ত করে :
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