Пользователи в Linux. Типы пользователей, управление пользователями.

Сегодня я хочу поговорить о пользователях в Linux. Мы познакомимся с типами пользователей и узнаем в каких файлах хранится связанная с ними информация. Изучим команды позволяющие управлять пользователями и изменять их данные. Рассмотрим примеры создания пользователей с различными параметрами и последующим изменениям пользовательских настроек.

Что такое алиас домена и зачем он нужен?

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

  1. Посетитель увидит контент, хранящийся на основном сайте, но в адресной строке будет ссылка с «ошибкой» (как с «зеркалом»).
  2. Или будет перенаправлен на главную страницу.

Типы алиасов

Вебмастеры создают связанные адреса нескольких типов в зависимости от поставленных задач. Вот некоторые из них:

  1. Синонимы с одинаковыми названиями сайтов, но с разными доменными именами: , , Нужны, чтобы пользователям не приходилось ломать голову и вспоминать суффикс.
  2. Синонимы с опечатками. , Такие алиасы защищают потенциальных посетителей от распространенных опечаток, а владельцев ресурса от появления подставных страниц, ворующих данные и портящих репутацию бренда.
  3. Еще синонимы используют для создания сокращенных ссылок и названий на русском языке. У Яндекса, например, есть и , ведущие на главную страницу поисковика.

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

Недостатки и неудобства, связанные с алиасами

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

А еще при наличии рабочих алиасов с опечатками у пользователей могут возникнуть лишние вопросы. Увидев какой-нибудь , он, вероятно, засомневается в том, что это официальный ресурс.

Если ваш сайт блокируют, то лучше настроить «зеркало».

Информация пользователей

В системе присутствует следующая информация о каждом пользователе:

  • Имя пользователя (user name) — в рамках системы имя должно быть уникальным. В именах должны использоваться только английские буквы, числа и символы _ и . (точка).
  • Идентификационный номер пользователя (UID) — является уникальным идентификатором пользователя в системе. Система отслеживает пользователей по UID, а не по именам.
  • Идентификационный номер группы (GID) — обозначает группу, к которой относится пользователь. Каждый пользователь может принадлежать к одной или нескольким группам. Принадлежность пользователя к группе устанавливает системный администратор, чтобы иметь возможность ограничивать доступ пользователей к тем или иным ресурсам системы.
  • Пароль (password) — пароль пользователя в зашифрованном виде.
  • Полное имя (full name) — помимо системного имени может присутствовать полное имя пользователя, например фамилия и имя.
  • Домашний каталог (home directory) — каталог, в который попадает пользователь после входа в систему. Подобный каталог имеется у каждого пользователя, все пользовательские каталоги хранятся в директории /home.
  • Начальная оболочка (login shell) — командная оболочка, которая будет запускаться при входе в систему. Например, /bin/bash.

Вся информация о пользователях хранится в следующих файлах:

passwd (etc/passwd) — содержит информацию о пользователях, имеет следующий формат записи — «user_name:password:UID:GID:full_name:home_directory:login_shell». Элементы записи должны разделяться символом — «:» (двоеточие) и записываются без пробелов. Если пароль хранится в зашифрованном виде в файле /etc/shadow, то вместо пароля указывается — «x».

group (etc/group) — информация о группах, формат — «group_name:password:GID:user1,user2,user3». Элементы записи должны разделяться символом — «:» (двоеточие) записываются без пробелов. Имена пользователей записываются через запятую.

У файлов /etc/passwd и /etc/group всегда определенные права доступа: чтение и запись для root, для остальных только чтение.

shadow (etc/shadow) — в этом файле хранятся так называемые «теневые пароли», информация о паролях пользователей в зашифрованном виде. Cделано это для безопасности, так как файл /etc/passwd может читаться кем угодно, а файл /etc/shadow может прочитать только root.

gshadow (etc/gshadow) — то же самое что и shadow, только для паролей групп.

Помимо основных, в системе присутствуют дополнительные файлы.

useradd (etc/default/useradd) — файл задающий свойства «по умолчанию» для всех добавляемых пользователей. Можно просмотреть командой — useradd -D.

useradd -D GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/sh SKEL=/etc/skel CREATE_MAIL_SPOOL=no

(/etc/) — содержит настройки для создания новых пользователей.

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

Основные команды Bash

Команда bash — наименьшая единица кода, которую bash может выполнить самостоятельно. Эти команды говорят bash, что нам нужно, чтобы он сделал. Обычно bash принимает от пользователя одну команду и возвращается к пользователю после ее выполнения.

Рабочая директория

pwd выводит содержимое рабочей директории и указывает на текущую рабочую директорию, то есть на директорию, которую оболочка просматривает в данный момент. Это также место по умолчанию, где команды оболочки будут искать файлы похожа на папку, но в shell мы будем придерживаться наименования директория (каталог). Файловая иерархия UNIX имеет древовидную структуру. Чтобы добраться до определенной папки или файла, нам нужно пройти по определенным путям внутри этой древовидной структуры. Пути разделяют каждый узел вышеуказанной структуры с помощью символа слэш( / ).

Читайте также:  Анализ данных в Linux. Глава из книги «Bash и кибербезопасность»

Для навигации и организации файлов используются команды ls и cd.

ls обозначает список и показывает содержимое директории. ls обычно начинает с просмотра нашего домашнего каталога. Это означает, что если мы вызовем команду ls самостоятельно, то он всегда выведет содержимое текущего каталога, которым в моем случае является /Users/parul.

Параметры команды

Параметры и опции включают некоторые специальные функции при использовании команды ls.

  • ls <папка> : для просмотра содержимого определенной папки.
  • ls -a: Для перечисления всех скрытых файлов в папке
  • ls -l: Выводитболее длинный и подробный список файлов. ls -l также может быть использован с именем каталога для перечисления файлов этого конкретного каталога.
  • ls ~: tilde(~) — сокращение, обозначающее домашний каталог. Таким образом, независимо от того, в какой директории мы находимся, ls ~ всегда будет показывать содержимое домашнего каталога.

Немного о масках файлов

Оболочка также позволяет нам сопоставлять имена файлов с шаблонами, обозначенными звездочкой(*). Она служит подстановочным знаком для замены любого другого символа внутри заданного шаблона. Например, если мы введем *.txt, то это приведет к перечислению всех файлов с расширением .txt. Давайте попробуем перечислить все файлы с расширением .py в нашей папке Demo:

cd, дословно, означает Change Directory (Изменить директорию) и изменяет активную директорию на указанный путь. После того, как мы используем cd в нужную директорию, можно воспользоваться командой ls, чтобы увидеть содержимое ее содержимое. Давайте посмотрим, как можно использовать эту команду:

  • cd … : Чтобы вернуться в родительский каталог.
  • cd : Для возврата в домашний каталог

Организация файлов

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

mkdir

mkdir означает Make directory и используется для создания новой директории или папки.

Основные команды Bash

mv означает Move и перемещает один или несколько файлов или каталогов из одного места в другое. Нам нужно указать, что мы хотим переместить, т.е. источник и куда мы хотим переместить их, т.е. место назначения.

Создадим в папке Demo новую директорию PythonFiles и переместим в нее все .py-файлы из папки Demo, используя две вышеприведенные команды.

Основные команды Bash

touch

Команда touch используется для создания новых пустых файлов. Она также используется для изменения временных меток на существующих файлах и каталогах. Вот как мы можем создать файл под названием в папке Demo.

Основные команды Bash

Команда rm означает «Удалить» и удаляет файлы или каталоги. По умолчанию она не удаляет каталоги, но если используется как rm -r * внутри каталога, то удаляется каждый каталог и файл внутри этого удалим ранее созданный файл

rmdir

Основные команды Bash

rmdir означает «удалить каталог» и используется для удаления пустых каталогов из файловой системы. Давайте удалим папку PythonFiles, которую мы создали некоторое время назад.

Обратите внимание, что ../ обозначает родительский каталог.

Основные команды Bash

Просмотр файлов

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

Основные команды Bash

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

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

$ cat

Команда cat отображает содержимое файла на экране. Это нормально, когда содержимого мало, но это становится проблемой, когда файл большой. Как видно из примера ниже, команда выводит все на терминал с очень высокой скоростью, и мы не можем разобраться во всем содержимом файла. К счастью, есть команда под названием «Меньше», которая позволяет нам просматривать содержимое по одному экрану за раз.

$ less

Существуют определенные варианты с меньшим количеством используемых опций:

Пробел: перейти к следующему экрануb: перейти к предыдущему экрану/: для поиска конкретного словаq: выйти

Как создать псевдоним электронного ящика в Gmail

1. Откройте Gmail. Зайдите в свой основной аккаунт Gmail.

Как создать псевдоним электронного ящика в Gmail

2. Нажмите на значок шестеренки «Настройки» в правом верхнем углу страницы и в открывшемся меню выберите «Все настройки».

3. Перейдите в меню «Аккаунты и импорт» в верхней строке.

Как создать псевдоним электронного ящика в Gmail

4. В разделе «Отправлять письма как» нажмите на «Добавить другой адрес электронной почты».

Как создать псевдоним электронного ящика в Gmail

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

6. Проверьте, установлена ли галочка рядом с полем «Использовать, как псевдоним».

Как создать псевдоним электронного ящика в Gmail

7. На следующем шаге потребуется подтвердить права на этот ящик путем отправки туда подтверждения. Нажмите кнопку «Отправить подтверждение». 

Как создать псевдоним электронного ящика в Gmail

8. Теперь надо перейти в созданный ранее второй ящик, а затем: либо нажать на ссылку в полученном от робота Gmail письме, либо скопировать там код и вставить в диалоговом окне настроек, указанном выше.

Как создать псевдоним электронного ящика в Gmail

9. Процесс верификации псевдонима завершен.

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

Как создать псевдоним электронного ящика в Gmail

Если не планируется отвечать на письма от имени этого псевдонима, то в меню «Аккаунты и импорт» → «Отправлять письма как» поменяйте первую опцию с «Отвечать с адреса, на который отправлено письмо» на «Всегда отвечать с адреса, используемого по умолчанию».

Читайте также:  Что нового в Linux Mint 19.3 Tricia – обзор новых возможностей

Там же будет показан адрес, который в данный момент используется на постоянной основе. Это может быть или основной ящик Gmail, или псевдоним.З

Как создать псевдоним электронного ящика в Gmail

Использование псевдонима электронной почты поможет скрыть свой фактический адрес, но позволит видеть приходящие даже на второй ящик письма в основной папке. Настроить эту функцию легко и для сторонних почтовых сервисов: , iCloud, Yandex, зная их настройки.

Смотрите также:

Принцип работы ssh_config

Параметры конфигурации SSH соединения можно прописать с помощью трех указанных ниже способов*:

  1. в опциях, задаваемых с помощью командной строки;
  2. в настройках файла конфигурации конкретного пользователя ~/.ssh/ssh_config;
  3. в общесистемном конфигурационном файле (для всех пользователей данного локального компьютера) /etc/ssh/ssh_config;

*Примечание: наибольший приоритет имеет командная строка, затем идет ~/.ssh/ssh_config и в последнюю очередь уже /etc/ssh/ssh_config.

Покажем на простом примере, как создать и отредактировать под Ubuntu ssh config file для конкретного пользователя локальной машины.

  • Если файл ssh_config не создан, то необходимо его создать с помощью команды:
Принцип работы ssh_config

touch ~/.ssh/config

  • На следующем этапе нужно отредактировать данный файлв nano ~/.ssh/config таким образом:

Host freehostUA HostName Port 22 User root

Где: Host — это alias (псевдоним) для нашего SSH-соединения, HostName — IP адрес VPS (или имя хоста, если включен DNS), Port — номер порта, User — имя пользователя.

С помощью несложных настроек мы создали alias для нашего VPS на , таким образом, соединиться с нашим удаленным сервером можно будет с помощью простой команды в терминале:

ssh freehostUA

Ниже опишем, что означают параметры, используемые в ssh_config, а также дадим примеры типовых настроек.

Linux подобную ОС Ubuntu можно установить на наш VPS хостинг.

Параметры ssh_config

Все параметры, которые вы сможете использовать в работе с файлом ssh_config можно посмотреть, выполнив команду:

Принцип работы ssh_config

man ssh_config

Для решения типовых задач в работе системного администратора советуем обратить внимание на следующие параметры настроек*:

  • Host — alias (псевдоним), произвольное наименование хоста.
  • HostName — IP адрес удаленного сервера или имя хоста (если настроен DNS).
  • Port — номер порта (если он нестандартный, по умолчанию используется порт 22).
  • User — имя пользователя.
  • IdentityFile — указывается путь к SSH-ключу, который используется для аутентификации при соединении с удаленным сервером (как правило, применяется в том случае, когда ключи не хранятся в директории «по умолчанию»).
  • IdentitiesOnly — сообщает клиенту SSH, какой именно ключ следует использовать для аутентификации на сервере (а не любые ключи, которые находятся в папке для ключей «по умолчанию»). В некоторых случаях может использоваться вместе с параметром IdentityFile, если этот параметр прописан в файле ssh_config, то будут проверены все ключи, даже те, которые пользователь введет в командной строке.
  • ServerAliveInterval и ServerAliveCountMax — ssh-клиент будет запрашивать ответ от удаленного хоста, даже если он не получает никаких данных в указанный интервал времени. Эти параметры помогут предотвратить сбрасывание соединения по причине отсутствия активности.
  • CertificateFile — используется опционально, совместно с параметром IdentityFile для точного указания сертификата, который необходимо предоставить для аутентификации.
  • PreferredAuthentications — параметр, который устанавливает в каком порядке будут использоваться методы аутентификации (по умолчанию: gssapi-with-mic, hostbased аутентификация, аутентификация на базе SSH-ключей, keyboard-interactive и вход по паролю).
  • SetEnv и SendEnv — эти параметры разрешают ssh-клиенту передавать локальные переменные среды на указанный удаленный хост, при этом сервер должен быть настроен для приема этих переменных. Для этого системный администратор должен на удаленном сервере в файле /etc/ssh/sshd_config установить значение Yes для параметра AcceptEnv.
  • HostKeyAlias — клиенту SSH дается указание использовать псевдоним ключа (key alias) из файла ~/.ssh/known_hosts вместо HostName. Данный параметр будет полезен для хостов с динамическими IP-адресами.
  • ProxyJump — с помощью этой опции можно организовать SSH Jump Server (jump host или bastion host), используя флаг –J при написании команды.
  • ForwardAgent и AddKeysToAgent — эта опция служит для организации безопасного проброса ключа (agent forwarding), позволяет осуществить доступ удаленного хоста к локальному SSH-агенту пользователя.

*Примечание: ниже покажем на примерах, как использовать данные опции в файле ssh_config.

CREATE DATABASE — команда MySQL для создания базы данных

Для того, чтобы создать базу данных на сервере нужно воспользоваться командой MySQL CREATE DATABASE, введя после неё в « название базы данных. Помним про синтаксис MySQL и после команды обязательно ставим ;:

MariaDB [(none)]> CREATE DATABASE `new_db`; Query OK, 1 row affected ( sec)

Более полная конструкция команды CREATE DATABASE:

CREATE DATABASE new_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

  • CHARACTER SET задаёт порядок сортировки.
  • COLLATE задаёт кодировку таблиц создаваемой базы данных.

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

  • Если задан параметр CHARACTER SET, но не задан параметр COLLATE, то используется стандартный порядок сортировки.
  • Если задан параметр COLLATE, но не задан CHARACTER SET, то кодировку определяет первая часть имени порядка сортировки в COLLATE.
    • Кодировка, заданная в CHARACTER SET, должна поддерживаться сервером,
    • а порядок сортировки должен быть допустимым для текущей кодировки.
  • Если не заданы оба параметра, то берётся значение по умолчанию.
Читайте также:  Как проверить наличие открытых портов в Linux

Вызов команд из истории

В моем случае это снова запустил ls -lrt, как вы можете видеть из вывода моей истории, это было на шесть команд выше моей последней команды.

Вы также можете использовать «!» как своего рода поиск. Используя мой пример истории bash, скажем, я хотел запустить последний цикл for, который был запущен. Вы можете использовать «! -14», но трудно вспомнить, сколько команд было назад, по крайней мере, для меня. Вместо этого мы можем сказать bash просто выполнить последнюю команду, начинающуюся с «for», вот так:

Пример:

[email protected]:~$ !for for i in `cat names`; do echo -n «FORWARD: $i — REVERSE: «; dig +short $i; done

Вы также можете указать по номеру, какую команду вы хотите запустить. Например, я хотел запустить команду 18 в приведенном выше примере. Используя восклицательный знак, сделать это можно так:

Например:

[email protected]:~$ !18 freshclam

Примеры работы с учетными записями

Команда useradd

Во-первых, давайте посмотрим на поведение команды useradd по умолчанию. Вы когда-нибудь запускали следующую команду?

useradd NewUser

Мы еще не видели дистрибутив, где эта команда создала полную учетную запись пользователя. Даже после установки пароля для нового пользователя вам потребуется использовать дополнительные параметры.

Например, в нашей системе указанная выше команда добавила следующую запись в файл /etc/passwd.

Если вы читали статью о перечислении пользователей в Linux, вы, вероятно, уже знакомы с содержанием файла /etc/passwd. Сначала это выглядит хорошо, но если вы начнете копать, вы скоро заметите, что некоторые вещи не совсем правильные.

Во-первых, второе поле содержит «х». Это означает, что заполнитель для информации о пароле находится в /etc/shadow. Но мы не установили пароль. Это означает, что тестовый пользователь не сможет войти в систему.

Во-вторых, домашний каталог. Дело в том, что /home/test не существует. Даже после того, как вы установили пароль, произойдет ошибка, если пользователь войдет в систему. В зависимости от другой конфигурации ваша система Linux может запретить пользователю входить без действительного домашнего каталога. Скорее всего, пользователь test позволит войти в систему, по крайней мере, в текстовом режиме. Но пользователь test не сможет создать свой домашний каталог.

В-третьих, оболочкой по умолчанию является sh, а не bash. Мы не используем sh как оболочку. Вы, вероятно, тоже не знаете, потому что bash является оболочкой по умолчанию в большинстве дистрибутивов Linux.

В то время как useradd-х поведение можно немного изменить, отредактировав /etc/, существует мало шансов, что приведенная выше команда создаст полную учетную запись пользователя. Useradd является низкоуровневая утилита. Тем не менее, просмотр настроек в /etc/ может быть полезен.

Синтаксис команды useradd

Команда useradd принимает в качестве аргумента имя пользователя, а также различные опции.

Синтаксис команды следующий:

useradd опцииимяпользователя

Создание нового пользователя

Чтобы просто создать пользователя используется команда useradd без каких-либо опций. Указывается только имя пользователя.

sudo useradd pupkin

Данная команда создает нового пользователя с системными параметрами по умолчанию, которые прописаны в файле /etc/default/useradd

Чтобы пользователь мог войти в систему, необходимо задать для него пароль. Для этого используем команду:

sudo passwd pupkin

Создание нового пользователя с домашней директорией в /home

Создадим пользователя и его домашнюю директорию.

sudo useradd -m pupkin

Домашняя директория создается по умолчанию в каталоге /home. Имя директории совпадает с именем пользователя.

Создание нового пользователя с произвольной домашней директорией

Чтобы создать пользователя с домашней директорией, расположенной в произвольном месте, используется опция -d, после которой указывается путь до директории. Директорию необходимо создать заранее.

Создаем домашнюю директорию для будущего пользователя:

sudo mkdir -p /users/pupkin

Копируем файлы и директории, которые по умолчанию создаются в домашней директории пользователя в данной системе. Данные файлы находятся в директории /etc/skel

sudo cp -rT /etc/skel /users/pupkin

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

sudo useradd -d /users/pupkin pupkin

Меняем права доступа у домашней директории:

sudo chown -R pupkin:pupkin /users/pupkin

Задаем пароль для пользователя:

sudo passwd pupkin

Можно просмотреть информацию о пользователе, которая сохранена в файле /etc/passwd

cat /etc/passwd | grep pupkin pupkin:x:1001:1001::/users/pupkin:/bin/sh

Создание нового пользователя с произвольными UID, GID

Каждый пользователь в Linux имеет свой числовой идентификатор — UID, а также идентификатор основной группы пользователя — GID.

При создании пользователя можно задать произвольные номера UID и/или GID. При указании номера группы, группа с этим номером должна быть создана заранее.

useradd -u 1234 -g 1222 pupkin

Создание пользователя с указанием оболочки (shell)

По умолчанию новые пользователи создаются с оболочкой /bin/sh Чтобы задать другую оболочку, используется опция -s /путь/до/оболочки

sudo useradd -m -s /bin/bash pupkin

Смотрите также: Как определить и изменить командную оболочку (shell) в Linux

Создать пользователя и добавить его в группы

Обычно пользователи в Linux принадлежат нескольким группам. Чтобы при создании нового пользователя задать группы, к которым он будет принадлежать, используется опция -G список,групп

sudo useradd -m -G adm,cdrom,wheel -s /bin/bash pupkin

Смотрите также: «Добавление пользователя в группу. Списки пользователей и групп в Linux»