Самый простой способ найти текущего пользователя – это открыть терминал, который покажет имя пользователя и имя хоста.
Запутался? Позвольте нам показать вам:
andreyex@destroyer:~$
где:
- andreyex – Имя пользователя
- destroyer – Имя сервера
Другой способ – использовать переменную среды $USER.
Но что, если вы хотите использовать эти данные в bash-скрипте? Или вы хотите найти текущего пользователя в bash-скрипте? Что ж, в этой статье такие вопросы будут рассмотрены более подробно.
Найти текущую учетную запись пользователя в Linux
В этой статье мы расскажем вам о следующих способах поиска текущей учетной записи пользователя в Linux:
- С помощью команды who
- С помощью команды whoami (дополнительные флаги не требуются)
- Используя переменную окружения $USER (лучше всего подходит для bash-скрипта)
Каждое из этих пояснений к командам будет включать выполнение командной строки, а также то, как это можно использовать в скрипте bash, чтобы вы могли получить максимальную отдачу от каждого из них.
1. Используя команду who
Чтобы узнать текущего вошедшего в систему пользователя с помощью команды who, все, что вам нужно сделать, это выполнить команду who следующим образом:
who
andreyex :1 2024-03-11 12:45 (:1)
Вы увидите текущего пользователя вместе с некоторой дополнительной информацией, где:
- :1 указывает, что пользователь подключен ко второму графическому дисплею (X сеанс Windows).
- 2024-03-11 12:45 это дата и время, когда пользователь вошел в систему.
Если бы вы использовали команду who только для получения имени пользователя, вам пришлось бы внести некоторые изменения.
Здесь я использовал команду awk, чтобы напечатать только имя пользователя, удалив всю остальную дополнительную информацию:
who | awk '{print $1}'
andreyex@destroyer:~$ who | awk '{print $1}' andreyex
С помощью команды who в скрипте bash
Чтобы использовать команду who для поиска текущей учетной записи пользователя, вы можете использовать команду who с аргументом awk и присвоить его переменной, как показано здесь:
#!/bin/bash # Получите текущую учетную запись пользователя, используя who и awk current_user=$(who | awk '{print $1}') echo "The current user is: $current_user"
При выполнении это выдаст вам следующий результат:
andreyex@destroyer:~$ ./who.sh The current user is: andreyex
2. Использование команды whoami
В отличие от команды who, когда вы выполняете команду whoami в Linux, она выводит только имя пользователя текущего вошедшего в систему пользователя:
whoami
andreyex@destroyer:~$ whoami andreyex
Да, никаких дополнительных флагов не требуется! Сразу к делу.
С помощью команды whoami в скрипте bash
Если вы хотите найти текущую учетную запись пользователя с помощью команды whoami, ее можно вычислить в скрипте bash следующим образом:
#!/bin/bash # Получите текущего пользователя, вошедшего в систему, с помощью whoami current_user=$(whoami) echo "The currently logged-in user is: $current_user"
Если вы решите использовать приведенный выше скрипт, ожидайте следующего вывода:
andreyex@destroyer:~$ ./who.sh The currently logged-in user is: andreyex
3. Использование переменной среды $USER
Чтобы использовать переменную среды $USER в скрипте bash для поиска текущего пользователя, вам нужно соединить ее с командой echo, как показано на рисунке:
echo $USER
andreyex@destroyer:~$ echo $USER andreyex
Теперь давайте посмотрим на ту часть скрипта bash, где он предназначен для использования!
Используя переменную среды $USER в скрипте bash
Если вы хотите использовать скрипт bash для поиска текущего пользователя, это может быть идеальным примером, поскольку вам не нужно присваивать его какой-либо переменной.
Конечно, вы можете добиться аналогичных результатов с помощью команд (используя $(command)), но все же мы считаем это самым простым способом.
Вот как вы можете использовать переменную среды $USER в скрипте bash:
#!/bin/bash echo "The current user is: $USER"
Да, простая однострочная команда, и при выполнении она даст вам те же результаты, что и две предыдущие команды:
andreyex@destroyer:~$ ./USER.sh The current user is: andreyex
Вот как управлять несколькими пользователями
Если вы системный администратор и хотите, чтобы пользователи принудительно меняли свой пароль при следующем входе в систему, вот подробное руководство, объясняющее, как заставить пользователей изменить пароль:
Вы также можете удалять учетные записи пользователей с помощью команды userdel:
Вы также можете изменять учетные записи пользователей с помощью команды usermod:
Мы надеемся, что вы найдете это руководство полезным.