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 whoamibu değişkenlerden herhangi birini okumak yerine neden kullanılacağını merak ediyorum .
USERve USERNAMEsı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 whoamiandsudo echo $USER
sudo echo $USERkabuk 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 whoamiEUID kullanarak , not sudo whoamiçıktı olurdu rootbile whoamiUID kullandı. Çalıştırdığı komut için hem EUID hem de UID'yi sudoayarlar (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 -usudo id -ru
mansayfasındawhoamisizin etkili kullanıcı kimliği ile ilişkili adını bildirir. Bu,sudobir setuid çalıştırılabilir kullanıyorsanız veya çalıştırıyorsanız, farklı bir şey getirecektir . Eğer varsasudokurmak deneyinsudo whoamiörneğin.