Ayrıca, bu değişkenler her zaman şu anda oturum açmış olan kullanıcı adıyla eşleşecek mi (Debian sistemimde yapıyorlar)? Diğer Unix (benzeri) sistemlerde kullanılabilirliklerini varsayabilir miyim?
Ayrıca neden whoami
bu değişkenlerden herhangi birini okumak yerine neden kullanılacağını merak ediyorum .
USER
ve USERNAME
sıradan çevre değişkenleridir; yani, isterseniz bunları rasgele değerlere ayarlayabilirsiniz. Sadece yazın USER=xyz
. Başka bir deyişle, bu değişkenler olsa bile, değerlerinin şu anda oturum açan kullanıcı adıyla eşleştiğine dair hiçbir garanti yoktur.
guarantee
, varsayılan olarak demek istedim (yani kullanıcının bunları değiştirmediğini varsayarak).
sudo whoami
andsudo echo $USER
sudo echo $USER
kabuk genişler $USER
, sonra çağırır sudo
. Tabi ki aynı çıktıyı üretmiyor whoami
. Gibi sudo whoami
, sudo sh -c 'echo $USER'
(genellikle) çıktı yapar root
. İlgili hakkındaki övgünün whoami
EUID kullanarak , not sudo whoami
çıktı olurdu root
bile whoami
UID kullandı. Çalıştırdığı komut için hem EUID hem de UID'yi sudo
ayarlar (aksi takdirde davranması için açıkça yapılandırdığınız çok sıra dışı durumlar hariç). Karşılaştırma için . sudo id -u
sudo id -ru
man
sayfasındawhoami
sizin etkili kullanıcı kimliği ile ilişkili adını bildirir. Bu,sudo
bir setuid çalıştırılabilir kullanıyorsanız veya çalıştırıyorsanız, farklı bir şey getirecektir . Eğer varsasudo
kurmak deneyinsudo whoami
örneğin.