Juga, akankah variabel-variabel ini selalu cocok dengan nama pengguna yang saat ini login (mereka lakukan di sistem Debian saya)? Bisakah saya menganggap ketersediaannya di sistem Unix (-seperti) lainnya?
Saya juga ingin tahu mengapa orang akan menggunakan whoamidaripada hanya membaca variabel-variabel ini.
USERdan USERNAMEmerupakan variabel lingkungan biasa, yang berarti bahwa, jika Anda mau, Anda bisa mengaturnya ke nilai arbitrer. Cukup ketik USER=xyz. Dengan kata lain, bahkan jika variabel-variabel itu ada, tidak ada jaminan bahwa nilainya cocok dengan nama pengguna yang saat ini masuk.
guarantee, maksud saya secara default (yaitu asumsi pengguna tidak mengubahnya).
sudo whoamidansudo echo $USER
sudo echo $USER, shell mengembang $USER, lalu memanggil sudo. Jadi tentu saja tidak menghasilkan output yang sama dengan whoami. Seperti sudo whoami, sudo sh -c 'echo $USER'apakah (biasanya) output root. Mengenai komentar Anda tentang whoamimenggunakan EUID , perhatikan bahwa sudo whoamiakan menghasilkan rootbahkan jika whoamimenggunakan UID. sudoset kedua EUID dan UID untuk perintah berjalan (kecuali dalam situasi yang sangat tidak biasa yang Anda secara eksplisit mengkonfigurasi untuk berperilaku sebaliknya). Bandingkan sudo id -udengan sudo id -ru.
manhalaman tersebut,whoamimelaporkan nama yang terkait dengan ID pengguna Anda yang efektif. Yang berarti itu akan mengembalikan sesuatu yang berbeda jika Anda menggunakansudoatau menjalankan setuid yang dapat dieksekusi. Jika sudahsudodiatur, cobasudo whoamimisalnya.