Добавляем нового пользователя в группу в Linux

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

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

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

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

[[email protected] ~]# useradd -D # useradd defaults file GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=yes

123456789 [root@hc~]# useradd -D# useradd defaults fileGROUP=100HOME=/homeINACTIVE=1EXPIRE=SHELL=/bin/bashSKEL=/etc/skelCREATE_MAIL_SPOOL=yes

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

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

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

useradd hc -m

1 useradd hcm

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

useradd testuser -m -s /bin/sh -c ‘Test User Account’

1 useradd testuserms/bin/shc‘Test User Account’

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

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

Читайте также:  Краткое руководство по началу работы с командной строкой Linux

Управление локальными администраторами через Restricted Groups

Политика групп с ограниченным доступом (Restricted Groups) также позволяет добавить доменные группы/пользователей в локальные группы безопасности на компьютерах. Это более старый способ предоставления прав локального администратора и сейчас используется реже (способ менее гибкий, чем способ с Group Policy Preferences).

Управление локальными администраторами через Restricted Groups
  1. Перейдите в режим редактирования политики;
  2. Разверните секцию Computer Configuration -> Policies -> Security Settings -> Restrictred Groups (Конфигурация компьютера -> Политики -> Параметры безопасности -> Ограниченные группы);
  3. В контекстном меню выберите Add Group;
  4. В открывшемся окне укажите Administrators -> Ok;
  5. В секции “Members of this group” нажмите Add и укажите группу, которую вы хотите добавить в локальные админы;
  6. Сохраните изменения, примените политику на компьютеры пользователей и проверьте локальную групп Administrators. В ней должна остаться только указанная в политике группа.

Данная политика всегда (!) удаляет всех имеющихся членов в группе локальных администраторов (добавленных вручную, другими политиками или скриптами). Если на компьютер действует несколько политик с настройками Restrictred Groups, применяется только последняя. Можно обойти это ограничение, добавив в Restrictred Groups сначала группу mskWKSAdmins, и потом эту группу включить в Administrators.

Управление локальными администраторами через Restricted Groups

Заключение

На самом деле, это не все опции которые доступны, более подробно можно узнать вызвав справку:

man usermod

Тут вы сможете узнать все о данной утилите “usermod”, ну и конечно советую прочитать статью о создании нового пользователя. Надеюсь, данная информация вам пригодиться в будущем, так как во многих мануалах описывается установка, а так же, необходимо добавление пользователя в группу. Хотя, если мануал составлен грамотно, то, там так же описывается и способ добавления вашего пользователя в группу. Но, в любом случае, если вы пользователь Linux, вам нужно постигать его философию и основы пользования системы.

А на этом сегодня все. Надеюсь данная статья будет вам полезна. Журнал Cyber-X

Несколько советов о перечислении пользователей в Linux

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

Читайте также:  Ubuntu переключение раскладки клавиатуры

Список только имена пользователей

У вас уже есть команда compgen для этого, но вам не нужно постоянно ее помнить.

Если мы хотим получить только список имен пользователей в системе, вы можете использовать команду awk или команду cut для фильтрации вывода двух других команд, которые мы видели ранее.

cut -d: -f1 /etc/passwd

или

getent passwd | awk -F: ‘{ print $1}’

Любой из них даст нам отфильтрованный список пользователей, показывая только самый первый столбец с именем пользователя:

root daemon bin sys sync games man lp mail news johndoe davmail statd

Проверьте, существует ли имя пользователя в системе

Это может быть полезно, если вы хотите знать, существует ли конкретное имя пользователя в системе:

getent passwd | grep johndoe

Это вывод:

johndoe:x:1000:1000:John Doe,,,:/home/johndoe:/bin/bash

Список всех подключенных пользователей

Если вы хотите знать какие пользователи в настоящее время вошли в вашу систему Linux, вам нужно использовать простую команду who и это немедленно выведет список текущих имен пользователей с активным сеансом в вашей системе.

[email protected]:~$ who johndoe :0 2019-01-28 21:35 (:0) harrysmith pts/0 2019-02-01 09:51 () stevejones pts/1 2019-02-02 09:51 ()

В этом случае в списке появится не только список подключенных имен пользователей, но и то, как они подключены, с момента, когда они подключены и откуда они подключены.

В самом первом столбце будет указано, какое это имя пользователя.

Во втором столбце будет указано, к какому типу соединения это относится: если оно обозначено знаком «: X», где X — число, это означает, что используется графический интерфейс пользователя (GUI) или сеанс рабочего стола, например Gnome, XDE и т. д. ; если терминал отображает «pts/X», где X — число, это означает, что это соединение, установленное по протоколу SSH (командная строка).

В третьем столбце будет указано, с каких пор этот сеанс был подключен к серверу (дата и время). В четвертом и последнем столбце будет указано место, откуда он подключен. Если удаленно, будет отображаться IP-адрес, с которого установлено соединение, если локально (например, GUI), будет отображаться «(: X)», где X — это число сеанс в этом случае и будет соответствовать число во втором столбце для этой строки.

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

Читайте также:  30 лучших альтернатив PuTTY для клиентов SSH

Работа с текстом

Парочка полезных команд для взаимодействия с любыми видами текстов на сервере через SSH.

cat — показывает текст из выбранного файла. В качестве аргумента передаем этой утилите текстовый документ, и cat выведет в консоль его содержимое. Синтаксис:

cat путь до файла, содержимое которого надо осмотреть

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

cat ~/Desktop/

head — это «голова». Она работает по схожему с cat принципу. Отображает текст из файлов, где он имеется. Разница заключается в количестве отображаемого контента. Пользователь сам выбирает, сколько строчек текста вывести на экран, поставив аргумент -n. Команда head -n 4 ~/Documents/ покажет только первые четыре строки документа из папки Documents.

tail — это «хвост». Работает, как head, но с противоположной стороны. Команда tail -n 8 ~/Documents/ покажет только первые восемь строк документа из папки Documents.

touch — одна из множества команд для SSH, которую используют не по назначению. У нее весьма специфичная задача по изменению времени последнего открытия отдельных элементов файловой системы. Но ее быстро перепрофилировали чуть ли не в стандартный метод создания файлов. touch ~/Desktop/ создаст HTML-документ с именем Timeweb на рабочем столе.

vi — используя с дополнительными аргументами, можно создавать новые текстовые файлы. Например vi /путь до директории, где нужно создать новый текстовый файл/. Или же редактировать уже существующие. Чтобы изменить содержимое какого-нибудь файла в домашней папке, надо ввести: vi /home/имя учетной записи/. Альтернативой vi может служить nano. Более современный и лояльный к новичкам редактор. К сожалению, может отсутствовать в системе по умолчанию и требовать установки.

wc путь до файла — показывает количество символов, количество строк и слов в выбранном текстовом документе.

grep — ищет конкретный кусочек текста в большом документе или распечатке из консоли. Чтобы дать понять, как он работает, покажу пример. Буду искать слово «немного» в файле , лежащем у меня на рабочем столе. Сделаю это одной командой cat ~/Desktop/ | grep немного. Перед grep я использовал cat, чтобы вывести содержимое документа в консоль, а потом отфильтровать.

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

diff