Как получить имя пользователя linux

DATAENGINER

Сегодня разные операционные системы имеют возможность использовать несколько пользователей, каждый со своими настройками и пользовательскими конфигурациями, чтобы облегчить совместную работу администраторов и операторов в одной системе.

Linux,очень силен в этом вопросе, поскольку позволяет нескольким пользователям одновременно работать в системе независимо. Он может даже позволить одному пользователю открывать несколько сеансов даже из разных мест для работы в системе.

Вот некоторые советы и рекомендации для как узнать всех пользователей Linux.

Список всех пользователей в Linux

Допустим, вы хотите создать пользователя sudo в Linux. Наверное, самое первое, что нужно знать, это как узнать, какие пользователи уже есть в моей системе. Есть несколько способов получить список пользователей в Linux.

1. Показать пользователей в Linux, используя cat /etc/passwd

Эта команда позволяет сисопам перечислять пользователей, которые локально хранятся в системе. Это даст список в структурированном виде, как:

Структура в приведенном выше выводе выглядит так:

  • Имя пользователя
  • Зашифрованный пароль ( x означает, что пароль хранится)
  • Идентификационный номер пользователя (UID)
  • Идентификационный номер группы пользователя (GID)
  • ФИО
  • Домашний каталог пользователя
  • Оболочка входа пользователя (по умолчанию — оболочка bash)

Почему так много пользователей? Какие из них «настоящие»?

Список показывает намного больше пользователей, чем вы ожидали, потому что в нем также перечислены все пользователи системы.

Теперь, если вы хотите отличить обычных пользователей от системных пользователей, вы можете обратиться к номеру идентификатора пользователя (UID).

Источник

Каков самый простой способ получить полное имя пользователя в системе Linux / POSIX?

Я мог бы grep через /etc / passwd, но это кажется обременительным. «палец» не установлен, и я хотел бы избежать этой зависимости. Это для программы, поэтому было бы неплохо, если бы была какая-то команда, которая позволит вам просто получить доступ к информации о пользователе.

10 ответов

вы не указываете язык программирования, поэтому я предположу, что вы хотите использовать оболочку; вот ответ для оболочек Posix.

два шага к этому: получить соответствующую запись, а затем получить поле, которое вы хотите от этой записи.

во-первых, получение записи учетной записи выполняется запрос passwd таблица:

Читайте также:  Скрипты для windows 10 для отключения ненужных

для истерического изюма полное имя пользователя записывается в поле под названием «типа gecos» поле; чтобы усложнить дело, это поле часто имеет свою собственную структуру с полное имя, как только один из нескольких дополнительных подполей. Поэтому все, что хочет получить полное имя из записи учетной записи, должно проанализировать оба этих уровня.

код язык программирования, вероятно, имеет функции библиотеки чтобы сделать это за меньшее количество шагов. В C вы бы использовали функцию getpwnam, а затем проанализировали поле GECOS.

в современной системе glibc используйте следующую команду:

вот вам passwd запись указанного пользователя, независимо от базового модуля NSS.

если вы уже программируете, вы можете использовать getpwnam() C-Функция:

на passwd тип имеет pw_gecos член, который должен содержать полное имя пользователя.

имейте в виду, что многие системы используют это поле не только для полного имени пользователя. Наиболее распространенным соглашением является использование запятой ( , ) в качестве разделителя в поле и место в режиме реального имя.

только в случае, если вы хотите сделать это из C, попробуйте что-то вроде этого:

комбинация других ответов, протестированных на минимальных установках Debian / Ubuntu:

Источник

Пользователи в Linux – добавление, изменение, удаление

Давайте разберемся, как устроены пользователи в Linux. В процессе мы создадим учетную запись, назначим группу, научимся менять пароли и получать информацию о созданных пользователях.

Создание и удаление пользователя в Linux – useradd

Для добавления пользователей используется команда useradd , а удаляются с помощью userdel . Давайте создадим две учетки, с одной будем работать дальше, а вторую удалим.

Перед тем как добавить учетную запись, на незнакомом сервере, сначала посмотрите какие параметры заданы по умолчанию для новых пользователей. useradd использует шаблон, который задается в файле /etc/default/useradd . Посмотрим, что там у нас:

Что тут для нас важно:

  • HOME=/home – директория где создастся домашняя папка пользователя, традиционно это /home
  • INACTIVE=-1 – количество дней, через которое навсегда заблокируется учетная запись, после устаревания пароля. -1 здесь означает, что возможность не используется.
  • EXPIRE= – дата, когда пользователь будет заблокирован. Сейчас пусто, значит никогда.
  • SHELL=/bin/bash – какая оболочка будет использоваться пользователем.
  • SKEL=/etc/skel – папка где лежат файлы, которые будут скопированы в домашнюю директорию нового пользователя.

По сути нас все устраивает, давайте уже создадим учётку:

-m указывает, что необходимо создать папку пользователя в /home , если ее там еще нет.
И сразу создадим второго:

Для разнообразия, с помощью ключа -s я указал, что shell оболочкой будет не bash, a sh. А -с задает комментарий для пользователя, который используется, обычно, как полное имя пользователя.

Читайте также:  Microsoft windows fix problems

Какие ключи еще понимает useradd :
-b – задает базовый каталог, в котором будет создана домашняя папка пользователя. По умолчанию /home
-d – задает имя домашнего каталога. По умолчанию название совпадает с именем пользователя
-e Дата, по достижении которой пользователь блокируется. Задается в формате ГГГГ-ММ-ДД. По умолчанию отключено. Соответствует EXPIRE в шаблоне /etc/default/useradd ;
-f – соответствует INACTIVE в шаблоне, как уже говорилось, срок устаревания пароля до блокировки;
-g – задает первичную группу для нового пользователя. Указывается GID или имя группы. Если параметр не задан, имя группы будет такое же как имя пользователя;
-G – список дополнительных групп для создаваемого пользователя;
-k – путь к каталогу шаблонов. Соответствует SKEL в шаблоне;
-u – для установки UID пользователя вручную.

Управляем паролями пользователей в Linux – passwd

Для задания и смены паролей используется команда passwd.

Давайте зададим пароль для пользователя hc:

Источник

Получить текущее имя пользователя в bash?

Я пишу программу в bash, которая должна получить имя пользователя.

Я слышал о существе под названием whoami но я понятия не имею, что это такое и как им пользоваться.

какую команду я использую для получения текущего имени пользователя?

10 ответов

в командной строке введите

чтобы сохранить эти значения в переменную, сделать

конечно, вам не нужно делать переменную, так как это то, что $USER переменная для.

альтернатива whoami is id -u -n .

id -u возвращает идентификатор пользователя (например, 0 для root).

хак, который я использовал на Solaris 9 и Linux, и который отлично работает для них обоих:

этот фрагмент печатает имя пользователя с текущим EUID.

Примечание: вам нужен баш в качестве переводчика здесь.

на Solaris у вас проблемы с методами, описанными выше:

  • id не принимаются -u и -n параметры (так что вам придется парсить вывод)
  • whoami не существует (by по умолчанию)
  • who am I печатает владельца текущего терминала (игнорирует EUID)
  • $USER переменная устанавливается правильно только после чтения файлов профиля (например, /etc/profile )

id Печать идентификатора пользователя вместе с группами. Формат: uid=usernumber(username) .

whoami дает текущее имя пользователя

используйте стандартную команду Unix/Linux/BSD/MacOS logname для получения зарегистрированного пользователя. Это игнорирует окружающую среду, а также sudo, поскольку это ненадежные репортеры. Он всегда будет печатать имя зарегистрированного пользователя, а затем выходить. Эта команда существует примерно с 1981 года.

когда требуются разрешения root (sudo), что обычно составляет 90%+ при использовании скриптов, вышеуказанные методы всегда дают вам root ответ.

чтобы получить текущий пользователь «вошел в систему» так же просто, но требует доступа к различным переменным: $SUDO_UID и $SUDO_USER .

Читайте также:  Как достать дистрибутив windows

им можно вторить:

или назначенные, например:

на bash/ksh/sh etc. На многие Ваши вопросы быстро отвечают либо:

чтобы получить документацию для используемой системы.

или обычно более удобно: google » функция man» Это может дать разные результаты для некоторых вещей, где linux и unix имеют скромные различия.

для этого вопроса, просто введите «whoami» в вашей оболочке.

в Solaris OS-я использовал эту команду.

на Linux — кто-то уже ответил на это в комментарии.

в большинстве систем Linux, просто набрав whoami в командной строке предоставляет идентификатор пользователя.

однако в Solaris вам может потребоваться определить идентификатор пользователя, определив UID пользователя, вошедшего в систему с помощью команды ниже.

Как только UID известен, найдите пользователя, сопоставив UID с /etc/passwd.

Источник

Как я могу узнать свое имя пользователя?

Как я узнаю свое имя пользователя? Я установил Ubuntu, но я не знаю своего имени пользователя, только мой пароль. Я не могу получить доступ к своему ноутбуку, и его нельзя открыть.

Откройте терминал и введите whoami

Это будет работать на любой системе Unix / Linux.

Самый простой способ узнать ваше имя пользователя — это, вероятно, нажать ctr + alt + t — это откроет терминал, и тогда вы увидите что-то вроде:

И это отвечает на ваш вопрос.

Откройте Терминал и введите:

Это выведет значение USER переменной окружения на консоль.

Если вы установили Ubuntu, то вы указали свое имя пользователя, поможет ли это пробежке по памяти?

Например, здесь, где yann имя пользователя

Вы должны загрузить Ubuntu в режиме восстановления. Следуйте инструкциям ниже:

Включите свой компьютер. Дождитесь окончания загрузки BIOS или его завершения. (В это время вы, вероятно, увидите логотип производителя вашего компьютера.) Быстро нажмите и удерживайте клавишу Shift, чтобы вызвать меню GNU GRUB. (Если вы видите логотип Ubuntu, вы упустили момент, когда вы можете войти в меню GRUB.) **

Выберите строку, которая начинается с « Дополнительные параметры ». *

Выберите строку, заканчивающуюся « (режим восстановления) », возможно, вторая строка, что-то вроде: Ubuntu GNU/Linux, with Linux 3.8.0-26-generic (recovery mode)

Нажмите Return, и ваша машина начнет процесс загрузки.

Через несколько секунд ваша рабочая станция должна отобразить меню с рядом опций. Одним из вариантов (вам может понадобиться прокрутить вниз до конца списка) будет « Отпуск в приглашение оболочки root ». Нажмите Return, когда эта опция выделена.

В конце концов, вы можете использовать эту команду для вывода списка всех имен пользователей:

Я полагаю, вы сможете узнать свое имя пользователя в списке.

Источник

Оцените статью