$ LOGNAME ve logname arasındaki fark


12

zaman echo $LOGNAMEveya lognamekomutlar normal olarak çalışır aşağıdaki gibi aynı sonucu elde edersiniz:

pandya@pandya-desktop:~$ echo $LOGNAME
pandya
pandya@pandya-desktop:~$ logname
pandya

Peki, aralarında fark var mı?

Yanıtlar:


17

Gönderen Çevre değişkenleri ,

$LOGNAMEaynıdır $USERverir

Oturum açmış olan kullanıcının adı. Bu değişken sistem tarafından ayarlanır. Muhtemelen değerini elle değiştirmemelisiniz.

itibaren man logname

logname - kullanıcının oturum açma adını yazdır


Expained farklı kullanılan aşağıdaki örnekle:

pandya@pandya-desktop:~$ sudo su
root@pandya-desktop:/home/pandya# echo $LOGNAME
root
root@pandya-desktop:/home/pandya# logname
pandya
root@pandya-desktop:/home/pandya# exit
exit
pandya@pandya-desktop:~$

Burada terminalden root olarak giriş yaptıktan sonra farkı görebilirsiniz,

  • $LOGNAMEterminalde oturum açmış olan kullanıcının adını verir (yani root)
  • Oysa oturumulogname açan kullanıcının oturum açma adını yazdır (ör. pandya)


6

Yardımcı program logname 16.04'te, görünüşte bilerek kırılmıştır, çünkü döndürdüğü değeri hacklemek mümkündür, bu bir güvenlik kusuru olabilir. https://bugzilla.gnome.org/show_bug.cgi?id=747046 Bazı komut LogName kullanarak ve kullanışlı ben a dan çağırarak olup olmadığını her zaman aynı değere (benim giriş adı) döndürdüğü için bulunmuştu kendi düzeyimden veya sudo çağırmadan kaynaklanırken, $ USER ve $ LOGNAME ortam değişkenleri bunu yapmaz. Birinin bilgisayarıma girmesi ve döndürdüğü değeri değiştirmesinden endişe etmiyordum. Eyvah .... Bir çözüm buldum. Giriş dizinimde böyle bir dosya oluşturdum

echo $USER > ~/.logname

Logname (örneğin, bir Bash değişkeni g_logname atama) erişmek istediğinizde, ben bunu böylece:

declare g_logname="$(<~/.logname)";

Bu benim için, ister kendim ister kök dizinde sudo üzerinden olsun, "~" giriş dizini olarak atamayı sürdürür. Sistemdeki her kullanıcının giriş dizini için bir .logname dosyası oluşturabilirim. Evet, birisi bilgisayarıma girip bu dosyaları değiştirebilir, ancak bunun için gerçekten endişelenmiyorum. Sadece senaryolarımın çalışmasını istiyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.