- Пользователи в Linux – добавление, изменение, удаление
- Создание и удаление пользователя в Linux – useradd
- Управляем паролями пользователей в Linux – passwd
- Как я могу получить имя пользователя текущего пользователя в Bash?
- Получить текущее имя пользователя в bash?
- 10 ответов
- Получить имя пользователя текущих пользователей в bash?
- 10 ответов:
- Создание, редактирование и удаление пользователей в Linux
- Создание
- Ключи (опции)
Пользователи в 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 переменная.
Альтернатива 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 с $
: Встроенный (синоним true ) используется вместо временной переменной, установив последний аргумент, который хранится в $_ . Затем мы расширяем его ( \u ), как если бы это была строка приглашения с P оператором.
Это лучше, чем использовать $USER , так $USER как это обычная переменная среды; его можно изменить, сбросить и т. д. Даже если он не был намеренно подделан, распространенным случаем, когда он по-прежнему неверен, является переключение пользователя без запуска оболочки входа (по su умолчанию).
В большинстве систем Linux простой ввод whoami в командной строке предоставляет идентификатор пользователя.
Однако в Solaris вам может потребоваться определить идентификатор пользователя, определив UID пользователя, вошедшего в систему с помощью приведенной ниже команды.
Как только UID известен, найдите пользователя, сопоставив UID с /etc/passwd файлом.
Источник
Получить текущее имя пользователя в 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 .
им можно вторить:
или назначенные, например:
на 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 .
им можно вторить:
или назначенные, например:
на 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.
Источник