До сих пор я использовал что-то вроде этого в скриптах, псевдонимы и в оболочке:Каков наилучший способ узнать имя пользователя в скрипте/команде bash?
qstat -u $USER
Теперь я узнал, что ни $USER
переменных ни $USERNAME
не встроенные в Баше. В то время как $UID
и $EUID
есть.
Я мог бы, конечно, использовать $(whoami)
или тому подобное. Существует множество способов узнать имя пользователя для текущего процесса. Но что самое лучшее, наиболее прочное и короткое из них и почему?
[POSIX] (http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html) требует '$ LOGNAME' быть установлен, но упоминает, что' $ USER' также используется. Не основывайте решения безопасности на значения '$ LOGNAME' или' USER', потому что я могу выполнять 'USER = root' и' LOGNAME = root', даже если я зарегистрирован как 'pleb'. –