Имя пользователя linux bash

Пользователи в 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. А -с задает комментарий для пользователя, который используется, обычно, как полное имя пользователя.

Какие ключи еще понимает 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 , но я понятия не имею, что он делает или как его использовать.

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

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

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

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

Читайте также:  Linux временная настройка сети

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

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

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

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

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

ПРИМЕЧАНИЕ: вам нужен Bash в качестве переводчика.

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

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

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

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

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

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

Они могут быть отражены:

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

В ОС Solaris я использовал эту команду:

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

Для Bash , KornShell ( ksh ) sh и т. Д. На многие ваши вопросы быстро отвечают:

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

Google «Man Function»

Это может дать разные результаты для некоторых вещей, где Linux и Unix имеют скромные различия.

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

Чтобы написать это:

Имя пользователя текущего пользователя может быть получено в чистом Bash с $ расширением параметра (введено в Bash 4.4):

: Встроенный (синоним true ) используется вместо временной переменной, установив последний аргумент, который хранится в $_ . Затем мы расширяем его ( \u ), как если бы это была строка приглашения с P оператором.

Это лучше, чем использовать $USER , так $USER как это обычная переменная среды; его можно изменить, сбросить и т. д. Даже если он не был намеренно подделан, распространенным случаем, когда он по-прежнему неверен, является переключение пользователя без запуска оболочки входа (по su умолчанию).

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

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

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

Источник

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

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

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

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

10 ответов

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

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

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

Читайте также:  Twonky server для linux

альтернатива 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 .

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

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

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

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

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

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

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

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

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

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

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

Источник

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

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

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

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

10 ответов:

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

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

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 для получения зарегистрированного пользователя. Это игнорирует окружающую среду, а также судо, поскольку это ненадежные репортеры. Он всегда будет печатать имя пользователя, вошедшего в систему, а затем выйти. Эта команда существует примерно с 1981 года.

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

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

Читайте также:  Microsoft windows server azure

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

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

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

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

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

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

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

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

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

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

после того, как жидкость известно, найти пользователя путем сопоставления жидкость против файле /etc/passwd и.

Источник

Создание, редактирование и удаление пользователей в Linux

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

Создание

* опции не являются обязательными при создании пользователя.

* в данном примере создается учетная запись dmosk.

Для учетной записи стоит сразу создать пароль:

* после ввода, система попросит ввести пароль дважды.

Ключи (опции)

Ключ Описание и примеры
-b Задает базовый каталог для домашнего каталога
useradd dmosk -b /var/home
-c Создает комментарий для описания учетной записи
useradd dmosk -c «Пользователя для управления системой»
-d Полный путь к домашнему каталогу пользователя
useradd dmosk -d /home/newuser
-D Позволяет показать или изменить настройки по умолчанию, которые будут применяться при последующем создании пользователей
useradd dmosk -Ds /bin/bash
-e Дата, после которой учетная запись устареет.
useradd dmosk -e 2017-12-31
-f Число дней, после которого учетная запись с устаревшим паролем будет заблокирована
useradd dmosk -f 0
-g Задает основную группу
useradd dmosk -g altternativegroup
-G Задает дополнительные группы
useradd dmosk -G wheel
-k Путь к источнику скелета (файлы с шаблонами для нового пользователя)
useradd dmosk -k /var/skel
-m При создании пользователя создать домашний каталог
useradd dmosk -m
-M Не создавать домашний каталог
useradd dmosk -M
-N Не создавать основную группу с таким же именем, как у пользователя
useradd dmosk -N
-o Разрешает создание учетной записи с повторяющимся UID
useradd dmosk -u 15 -o
-p Задает пароль
useradd dmosk -p pass
-r Системная учетная запись (без домашнего каталога и с идентификаторами в диапазоне SYS_UID_MIN — SYS_UID_MAX из файла /etc/login.defs)
useradd dmosk -r
-R Каталог, в который выполняется chroot
useradd dmosk -R /var/chroot/home
-s Путь до оболочки командной строки
useradd dmosk -s /bin/csh
-u Задает UID
useradd dmosk -u 666
-U Имя группы будет таким же, как у пользователя
useradd dmosk -U

Актуальный список ключей можно получить командой useradd -h.

Источник

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