Пользователи в linux

System config network tui

Для управления сетевыми настройками в CentOS можно воспользоваться графической утилитой nmtui. Проверить ее наличие в системе очень просто. Достаточно запустить ее в консоли:

Если она у вас не установлена, то исправить это очень просто. Устанавливаем в CentOS system config network tui:

С помощью tui можно указать любые сетевые настройки, которые мы делали раньше через командную строку и редактирование конфигурационных файлов network-scripts. Давайте сделаем это. Вызываем программу:

Выбираем первый пункт Edit a connection, затем выбираем сетевой интерфейс и жмем «Edit»:

Здесь мы можем изменить имя сетевой карты, mac адрес, указать тип сетевых настроек — ручной или dhcp, указать вручную ip адрес, адрес шлюза, днс сервера, добавить маршруты и некоторые другие настройки:

После завершения редактирования сохраняем настройки, нажимая ОК.Если в первом экране утилиты выбрать пункт Set System Hostname, то можно быстро указать имя хоста. Результат будет такой же, как мы делали раньше в консоли.

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

Немного теории

Чтобы всем этим управлять нужна основная служба — система инициализации, которая будет запускать службы linux в нужный момент, следить чтобы они нормально работали, записывать сообщения логов, и самое главное позволять останавливать службы. Раньше, для управления службами использовались скрипты. Я уже говорил, что можно запустить службу из терминала, так вот, каждая служба запускалась в фоновом режиме одна за другой, без возможности параллельного запуска и возвращала свой PID процесса скрипту инициализации, он сохранялся и потом с помощью этого PID можно было проверить работает ли служба и остановить службу linux если это нужно. Все это можно сделать и вручную.

Но потом на смену этому методу пришла новая модель и система инициализации systemd. Система инициализации запускается сразу после загрузки ядра и начинает инициализировать службы, теперь появилась возможность параллельной инициализации, а также зависимостей между службами. Таким образом, теперь можно определить сложное дерево порядка запуска служб. Но мы не будем вникать в подробности создания служб, нас интересует только сам процесс запуска. После запуска systemd собирает весь вывод службы в лог, и следит за ее работой, если служба аварийно завершилась, то автоматически ее перезапускает.

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

  • service — обычная служба, программа
  • target — группа служб
  • automount — точка автоматического монтирования
  • device — файл устройства, генерируется на этапе загрузки
  • mount — точка монтирования
  • path — файл или папка
  • scope — процесс
  • slice — группа системных служб systemd
  • snapshot — сохраненное состояние запущенных служб
  • socket — сокет для взаимодействия между процессами.

Нас будут интересовать только service, и совсем немного target, но мы рассмотрели все остальные, чтобы вы смогли взглянуть на картину немного шире. Основы рассмотрели, теперь будет настройка служб LInux.

Установить шлюз по-умолчанию в CentOS 7

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

Строка с Destination 0.0.0.0 определяет адрес шлюза. Если у вас ее нет, либо в поле Gateway установлен неверный шлюз, то можно это изменить. Устанавливаем шлюз по-умолчанию:

В CentOS по-умолчанию имеется служба, которая управляет всеми сетевыми подключениями — NetworkManager. Она постоянно контролирует сетевые настройки и с помощью демона по управлению конфигурациями вносит соответствующие изменения в активные сетевые устройства. Она поддерживает стандартные файлы конфигураций ifcfg.

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

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

1. Создаем пользователя и группу Linux:

groupadd u10001 -g 10001

useradd u10001 -u 10001 -g virtwww -G u10001 -d /var/www/u10001 -m -k /dev/null

* где u10001 — имя пользователя/группы; 10001 — идентификатор пользователя в системе; virtwww — основная группа, которой будет принадлежать пользователь; опция -m создаст каталог пользователя; -k /dev/null — не использовать скелет для наполнения профиля файлами.

2. Создаем базу данных и пользователя mysql:

mysql -uroot -p -e «CREATE DATABASE b10001 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;» -e «GRANT ALL PRIVILEGES ON b10001.* TO m10001@localhost IDENTIFIED BY ‘mysqlpass’;»

* где b10001 — название базы; m10001 — пользователя базы данных; mysqlpass — пароль доступа к mysql.

3. Создаем FTP-пользователя. Процесс зависит от того, где мы решили хранить пользователей.

Если храним в файле:

ftpasswd —passwd —file=/etc/proftpd.d/ftpd.passwd —name=f10001 —uid=10001 —gid=10001 —home=/var/www/u10001 —shell=/sbin/nologin

Если в базе данных:

mysql -uroot -p -e «INSERT INTO proftpd.users (username, password, uid, gid, homedir) values (‘f10001’, encrypt(‘ftpass’), 10001, 10001, ‘/var/www/u10001’);»

* f10001 — имя FTP-пользователя; ftpass — пароль пользователя.

4. Задаем права на каталоги:

chmod 4710 /var/www/u10001

chmod 4470 /home/mysql/b10001

chown u10001:virtwww /var/www/u10001

chown u10001:mysql /home/mysql/b10001

* где /home/mysql — путь, по которому хранятся базы.

Как настроить DNS в CentOS

Текущие настройки dns сервера в CentOS можно посмотреть в двух местах:

  1. В файле с настройками сетевой карты ifcfg-eth0, которым мы ранее неоднократно редактировали.
  2. В файле /etc/resolv.conf

Зачем они сейчас в двух местах, я не знаю, но раньше настройки dns сервера в каких-то дистрибутивах, не помню уже точно каких, указывались только в resolv.conf, но в какой-то момент это изменилось. И все сетевые настройки стали храниться в одном файле вместе с адресом, шлюзом, маской и прочим. Если сейчас отредактировать файл resolv.conf и внести туда какие-то dns сервера, то после перезагрузки они будут заменены на значения из файла ifcfg-eth0.

Так что для того, чтобы установить параметры dns сервера, нужно отредактировать файл сетевых настроек ifcfg-eth0, добавив туда столько серверов, сколько требуется. Например так:

Для применения настроек сохраняем файл и перезапускаем сеть, все как обычно. После перезагрузки сервера настройки dns будут записаны в файл resolv.conf

Как посмотреть список пользователей Linux

Привет всем любителям и почитателям альтернативных операционных систем! Я, конечно, чаще всего работаю в Windows, но и с «Пингвином» приходится довольно часто общаться. Недавно мне понадобилось посмотреть список пользователей из старенького файлового сервера на Ubuntu Linux чтобы завести их всех на новом, более мощном под управлением CentOS. Старый уже практически отжил своё и вот-вот должен накрыться, но пока ещё запускается. Итак, чтобы вывести список пользователей Линукс в консоли, достаточно просто вывести содержимое системного файла

Делается это с помощью команды:

Чтобы исключить из списка системные учётные записи и вычленить только несистемные логины, воспользуйсь вот таким вариантом:

Если полная информация не нужна и достаточно всего лишь логинов, то лучше использовать вот такую команду:

Вот результат её вывода:

Мне именно такой вариант был удобнее, потому как я просто скопировал его и вставил в лист Excel, получив в каждой строчке по логину.

Есть и ещё один неплохой вариант получить список пользователей Linux (Ubuntu, Fedora, CentOS и т.д.) в консоли — это утилита getent . Она используется для того, чтобы выполнить чтение информации по базам данных операционной системы и вывести результат поиска. Команда будет выглядеть так:

Результат выполнения будет таким:

И ещё! Иногда надо посмотреть список активных пользователей Linux, то есть тех, которые сейчас залогинен в системе. Для этого надо воспользоваться другой командой:

Этим Вы вызовите системную утилиту users, которая перечислит все текущие логины, которые подключились к системе в отсортированном по имени виде. Альтернативным вариантом может служить команда:

То есть Вы увидите таблицу, где будут отображены все виртуальные консоли с залогиненными в них юзерами.

Утилита systemctl

В Systemd есть специальный инструмент для управления службами в Linux — systemctl. Эта утилита позволяет делать очень много вещей, начиная от перезапуска службы linux и проверки ее состояния, до анализа эффективности загрузки службы. Синтаксис у утилиты такой:

$ systemctl опции команда служба служба…

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

Рассмотрим все по порядку. Опции очень сильно зависят от команд, поэтому рассмотрим их позже, а пока пройдемся по командах:

  • list-units — посмотреть все службы (юниты), аналог опции -t
  • list-sockets — посмотреть все службы сокетов
  • start — запустить службу linux
  • stop — остановить службу linux
  • reload — обновить конфигурацию службы из файла юнита
  • restart — перезапустить службу
  • try-restart — перезапустить службу, только если она запущена
  • reload-or-restart — обновить конфигурацию затем выполнить перезапуск службы linux, если не поддерживается — только перезапустить
  • isolate — запустить только одну службу вместе с ее зависимостями, все остальные остановить
  • kill — отправить сигнал завершения процессу используется вместе с опциями —signal и —kill-who
  • is-active — проверить запущена ли служба linux
  • is-failed — проверить не завершилась ли служба с ошибкой
  • status — посмотреть состояние и вывод службы
  • show — посмотреть параметры управления службой в Linux
  • reset-failed — перезапустить службы linux, завершившиеся с ошибкой
  • list-dependencies — посмотреть зависимости службы linux
  • list-unit-files — вывести все установленные файлы служб
  • enable — добавить службу в автозагрузку
  • disable — удалить службу из автозагрузки
  • is-enabled — проверить если ли уже служба в автозагрузке
  • reenable — сначала выполнить disable потом enable для службы
  • list-jobs — все запущенные службы linux независимо от типа
  • snapsot — сохранить состояние служб, чтобы потом восстановить
  • daemon-reload — обновить конфигурацию всех служб
  • mask — сделать юнит недоступным
  • unmask — вернуть файл службы linux

А теперь основные опции:

  • -t, —type — тип служб для вывода
  • -a, —all — показать все известные службы, даже не запущенные
  • -q — минимальный вывод
  • —version — версия программы
  • —no-pager — не использовать постраничную навигацию
  • —no-legend — не выводить подробное описание
  • -f — принудительное выполнение команды
  • —runtime — не сохранять вносимые изменения после перезагрузки
  • -n — количество строк вывода лога для команды status
  • —plain — использовать обычный текстовый режим вместо деревьев
  • —kill-who — задать процесс, которому нужно отправить сигнал
  • —signal — сигнал, который нужно отправить.
  • —state — отфильтровать список служб по состоянию.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *