Аутентификация клиентов Linux с помощью Active Directory

Written on 27 Января 2009. Posted in Администрирование Windows

Ubuntu Server

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

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

Проверка подлинности Linux

Первоначально Linux (а также средства и библиотеки GNU, работавшие на нем) не рассчитывался на единый механизм проверки подлинности. Как следствие этого, разработчики приложений Linux обычно брались за разработки собственных схем проверки подлинности. Им удавалось добиться этого либо за счет поиска хэш-кодов имен и паролей в /etc/passwd (текстовом файле, традиционно содержащем учетные данные пользователей Linux) или предоставления совершенно иного (и отдельного механизма).

Получившийся ассортимент механизмов проверки подлинности был неуправляемым. В 1995 г. компания Sun предложила механизм, именуемый подключаемыми модулями проверки подлинности (Pluggable Authentication Modules – PAM). PAM предоставляли общий набор интерфейсов API проверки подлинности, который мог использоваться всеми разработчиками приложений, а также настраиваемый администратором серверный элемент, позволяющий использовать различные «подключаемые» схемы проверки подлинности. Использование интерфейсов API PAM для проверки подлинности и интерфейсов API переключателя сервера имен (Name Server Switch – NSS) для поиска сведений о пользователе позволило разработчикам приложений Linux писать меньше кода, а администраторам Linux управлять процессом проверки подлинности и настраивать его из одного места.

Большинство выпусков Linux снабжались несколькими модулями проверки подлинности PAM, включая модули, поддерживающие проверку подлинности в каталоге LDAP и проверку подлинности с использованием Kerberos. Эти модули можно использовать для проверки подлинности в Active Directory, но на это существуют значительные ограничения, о которых я расскажу ниже в данной статье.

Установка программ в Ubuntu с использованием графического интерфейса

Начнем со стандартного менеджера самого популярного на сегодняшний день дистрибутива Linux — Ubuntu. Он носит название «Центр приложений Ubuntu». Для вызова этой программы нужно кликнуть по соответствующей иконке на панели запуска.

Рис. 1. Иконка центра приложений Ubuntu

Если иконка там отсутствует, нужно открыть Главное меню (Dash) и набрать первые буквы названия программы.

Рис. 2. Центр приложения Ubuntu

В верхней части окна программы можно выбрать:

  • «Все приложения» для просмотра и установки новых программ
  • «Установлено» для просмотра установленных приложений и их удаления при необходимости
  • «История» для просмотра лога работы с программой.

В правом верхнем углу окна находится строка поиска, куда можно ввести ключевые слова, описывающие нужную программу. Слева расположен список категорий программ. По центру окна расположен непосредственно список программ. Нажав на иконку или название программы, мы увидим ее подробное описание, скриншоты и отзывы пользователей. Для установки программы нужно нажать кнопку «Установить» (или «Купить», если приложение платное). Перед установкой система запросит пароль суперпользователя, после чего останется подождать некоторое время, пока программа загрузится и установится. Удаление программ выполняется аналогичным образом. Сверху окна нажимаем на кнопку «Установлено», выбираем программу, которую хотим удалить, затем нажимаем кнопку «Удалить».

Читайте также:  Почему Linux VPS лучший выбор, чем VPS Windows

Центр приложений Ubuntu может быть использован также для установки пакетов, которые были скачены из интернета. В Ubuntu они имеют расширение .deb. Для установки программ таким способом достаточно кликнуть на дистрибутив программы (), откроется центр управления, после чего нужно нажать кнопку «Установить». При этом дистрибутив программы должен быть создан для конкретной, установленной у вас версии операционной системы, в противном случае могут возникнуть проблемы с зависимостями и установить программу не удастся. Кроме того, при скачивании программ из сомнительных источников, существует вероятность наличия в них вредоносного кода, поэтому, повторим рекомендацию по установке программ из официальных дистрибутивов. Существуют и другие графические менеджеры пакетов для различных систем на базе Linux (Synaptic, KPackage и т.д.). В рамках данной статьи мы не сможем их рассмотреть подробно, однако они имеют схожую функциональность и интерфейс, поэтому при установке программ с использованием графического интерфейса особых проблем возникнуть не должно.

Как просматривать группы в Ubuntu Linux VPS

Вы также можете создавать группы, собирая нескольких пользователей и давая им некоторые административные права в системе. Этот вариант удобен для создания групп пользователей в одной системе. Информация об этих группах будет сохранена в папке Group. Итак, используйте следующую команду для просмотра групп в терминале.

less /etc/group

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

Используйте команду ниже, если вы хотите отобразить имена групп:

Как просматривать группы в Ubuntu Linux VPS

cut -d : -f 1 /etc/group

Как вывести список пользователей в Ubuntu Linux VPS с помощью команды getent Команда getent используется для отображения записей из базы данных, настроенной в файле /etc/ Он охватывает базу данных passwd, которую можно использовать для запроса списка пользователей. Команда getent отображает записи из баз данных, настроенных в файле /etc/, включая базу данных passwd, для запроса списка всех пользователей.

Используйте следующую команду для выполнения getent в терминале:

getent passwd

После выполнения команды вы получите следующий вывод:

Вы можете использовать awk или cut для печати первого поля, содержащего имя пользователя:

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

Как просматривать группы в Ubuntu Linux VPS

Как просмотреть зарегистрированных пользователей с помощью команды w Вы можете использовать команду w для вывода списка зарегистрированных пользователей Linux Ubuntu VPS. Чтобы использовать эту команду, введите «w» в терминале и выполните ее, нажав Enter.

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

  • user -⁠ представляет имя пользователя.
  • TTY ⁠- представляет имя терминала.
  • From ⁠- представляет имя удаленного хоста.
  • [email protected] — время входа в систему.
  • Idle — представляет собой простой.
  • JCPU — ⁠ представляет время, используемое процессом, связанным с TTY.
  • PCPU ⁠ — представляет время, используемое конкретным процессом, отображаемым в поле WHAT.
  • WHAT ⁠- представляет текущий процесс пользователя.

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

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

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

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

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

Читайте также:  Настройка syslog-ng для централизованного сбора логов

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

Просмотр учетных записей пользователей

Вся информация об учетной записи пользователя хранится в файле /etc/passwd.

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

cat /etc/passwd

Вывод может выглядеть следующим образом:

testk:x:1000:1000:testkam,103,,:/home/testk:/bin/bash

Эта строка имеет следующий формат:

account:password:UID:GID:GECOS:directory:shell

где:

account — имя пользователяpassword — зашифрованный пароль пользователяUID — идентификационный номер пользователяGID — идентификационный номер основной группы пользователяGECOS — необязательное поле, используемое для указания дополнительной информации о пользователе (например, полное имя пользователя)directory — домашний каталог ($HOME) пользователяshell — командный интерпретатор пользователя (обычно /bin/sh)

Для просмотра списка пользователей, которые находятся в данный момент времени в системе, используется команда who или w.

Результат выполнения команды who выглядит следующим образом:

testk pts/0 2016-11-18 11:42 ()

Результат выполнения команды w выглядит следующим образом:

11:43:46 up 17 days, 23:30, 1 user, load average: , , TTY FROM [email protected] IDLE JCPU PCPU WHATtestk pts/0 11:42 wУдаление пользователя

Для того чтобы удалить пользователя воспользуйтесь командой userdel:

sudo userdel username

Команда userdel имеет два основных ключа -f и -r:

  • sudo -f userdel username Принудительно удалить учетную запись пользователя, даже если он сейчас работает в системе.
  • sudo -r userdel username Удалить домашний каталог пользователя.

Управление группами

Каждый пользователь принадлежит к одной или нескольким группам.

Так же как и пользователь, группа обладает правам доступа к тем или иным каталогам, файлам, периферии (в системе есть зарезервированные группы).

Читайте также:  Google chrome грузит процессор: что делать

Группы объединяют пользователей для предоставления одинаковых полномочий на какие-либо действия.

Каждой группе назначается идентификационный номер (group ID), сокращённо GID, который является уникальным идентификатором группы. Принадлежность пользователя к группе устанавливается администратором.

Для просмотра всех групп системы используется команда:

cat /etc/group

Файл /etc/group определяет группы в системе.

Этот файл /etc/group для обнаружения системных групп можно просмотреть при помощи команды:

less /etc/group

Результат будет выглядеть следующим образом:

root:x:0:daemon:x:1:bin:x:2:sys:x:3:adm:x:4:syslogtty:x:5:disk:x:6:lp:x:7:mail:x:8:

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

groups username

Команда id показывает более подробную информацию:

id username

Для создание новой группы введите команду:

groupadd group

Для добавления пользователя в группу:

gpasswd -a username group

Вывод пользователя из группы осуществляется командой:

gpasswd -d username group

Для того чтобы удалить группу используется команда:

groupdel group

Заключение

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

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

tglnkLinux

Флаг ограниченного удаления (или «Sticky Bit»)

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

Системная информация

  • date – вывести текущую дату и время
    • [ммддччмм[гг]].сс — установка даты и времени (мм — месяц, дд — дата, чч — час, мм — минут, гг — год, сс — секунд)
  • cal – вывести календарь на текущий месяц
  • uptime – показать текущий аптайм
  • uname – показать информацию о ядре
    • -s — Показать имя ядра (информация выдается по умолчанию, если ни одна опция не указана)
    • -n — Показать имя хоста.
    • -r — Показать номер выпуска ядра. Эта опция часто используется с командами управления модулями.
    • -v — Показать версию ядра.
    • -m — Показать имя аппаратной платформы (CPU).
    • -o — Показать имя операционной системы.
    • -a — Показать всю возможную информацию.
  • cat /proc/cpuinfo – информация ЦПУ
  • cat /proc/meminfo – информация о памяти
  • df – показать инф. о использовании дисков
    • -t — указание типа ФС
    • -h — в «понятном» виде
    • -T — отображение типа ФС
    • -i — отображение информации об inode
    • -x fstype — исключение вывода по типу ФС
  • du – вывести “вес” текущего каталога
    • -s — с подкаталогами
    • -h — в «понятном» виде
    • -m — вывод в мегабайтах
  • dmidecode — информация о железе, берется из API DMI (пакет pmtools)
    • -t— указать тип устройства
      • -t 17 — информация о памяти
    • -q — вывод меньшей информации
  • free – использование памяти и swap
  • whereis file– отображение расположения файла file
  • which app – отображает путь к команде app
  • type app — аналог каманды which
  • enable — вывод встроенных в интерпретатор команд
  • lshw — обтображение списка устройств
  • lsmod — список подключенный модулей ядра
  • modprobe modulemane — добавления и удаления модулей ядра Linux
  • modinfo modulename — информация о модуле modulename
    • -F param — отображение только параметра param для модуля