Різниця між $ LOGNAME та іменем


12

коли echo $LOGNAMEабо lognameкоманди виконуються зазвичай, отримують такий же результат, як наступний:

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

Отже, чи є різниця між ними?

Відповіді:


17

З змінних середовища ,

$LOGNAMEте саме, $USERщо дає

Ім’я користувача, який зараз увійшов. Цю змінну встановлює система. Ймовірно, ви не повинні змінювати його значення вручну.

З man logname

logname - друкувати ім’я користувача для входу


По- різному пояснюється, використовуючи наступний приклад:

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:~$

Тут ви можете побачити різницю після входу як root у терміналі,

  • $LOGNAMEдає ім'я користувача, який увійшов у термінал (тобто root)
  • Враховуючи lognameім'я користувача для входу в систему, який ввійшов у сеанс (тобто pandya)


6

Ім’я утиліти порушено в 16.04, мабуть, навмисно, оскільки можна зламати значення, яке воно повертає, що може бути вадою безпеки. https://bugzilla.gnome.org/show_bug.cgi?id=747046 Я використовував логін у деяких сценаріях, і вважав його корисним, оскільки воно завжди повертало те саме значення (моє ім’я для входу), чи я його викликав із мого власного рівня або з виклику sudo, тоді як змінні середовища $ USER і $ LOGNAME не мають. Я не хвилювався за те, щоб хтось увірвався в мій комп'ютер і змінив значення, яке воно повертає. На жаль .... Я знайшов вирішення проблеми. Я створив файл у своєму домашньому каталозі як такий

echo $USER > ~/.logname

Коли я хочу отримати доступ до свого імені (наприклад, присвоюючи змінну Bash g_logname), я роблю це таким чином:

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

Це працює для мене, як я, чи то на кореневому рівні через sudo, який підтримує призначення "~" як мого домашнього каталогу. Я можу створити .logname файл для домашнього каталогу кожного користувача в системі. Так, хтось міг би зламати мій комп'ютер і змінити ці файли, але я не дуже переживаю з цього приводу. Я просто хочу, щоб мої сценарії працювали.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.