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 whoami
daripada hanya membaca variabel-variabel ini.
USER
dan USERNAME
merupakan 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 whoami
dansudo 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 whoami
menggunakan EUID , perhatikan bahwa sudo whoami
akan menghasilkan root
bahkan jika whoami
menggunakan UID. sudo
set 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 -u
dengan sudo id -ru
.
man
halaman tersebut,whoami
melaporkan nama yang terkait dengan ID pengguna Anda yang efektif. Yang berarti itu akan mengembalikan sesuatu yang berbeda jika Anda menggunakansudo
atau menjalankan setuid yang dapat dieksekusi. Jika sudahsudo
diatur, cobasudo whoami
misalnya.