Linux Ghost Flaw: все, что вам нужно знать

18.12.2020 Дмитрий Демченко 847 + Linux

Синтаксис

Рассмотрим синтаксис.

who параметры файл

Основные параметры:

  • -a — читает файл /etc/utmp, включает все основные опции;
  • -b — показывает дату и время загрузки операционной системы;
  • -d — показывает зомби-процессы.
  • -u — выводит активных пользователей.
  • -s — выводит имя, терминальную сессию и  время, данный параметр используется по умолчанию;
  • -T — информация о терминальной сессии;
  • -q — количество пользователей в системе в данный момент;
  • -r — показывает уровень процесса init.

Обычно для выполнения команды who берется информация файла: «/etc/utmp».

Альтернативные файлы: «/etc/wtmp» и «/etc/inittab».

Примеры

Если не использовать опции и аргументы, на экране появятся данные по умолчанию, включающие в себя информацию об учетных записях (тех, кто подключен к системе). Чтобы ознакомиться с данными о пользователе, который изъявил желание обратиться к терминалу прямо сейчас («спросить» у системы о самом себе), необходимо использовать команду «who am i».

$ who am i

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

$ who -a

Каких-либо дополнительных указаний в этом случае не потребуется. Если использовать исключительно «who», данных будет сравнительно меньше. Детализировать этот запрос или нет – решать только вам. Смотрите по ситуации.

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

$ who —login

Впишите её в терминале и ознакомьтесь с результатами запроса.

Чтобы посмотреть «runinit» (текущий уровень запуска), впишите в команду соответствующую опцию. Это будет выглядеть так:

$ who -r

Опция -s не имеет особого смысла, поскольку она провоцирует вывод таких стандартных значений, как «Имя пользователя», «терминальная линия», «время начала/окончания сеанса». Эта информация доступна и без добавления каких-либо опций. Едем дальше.

С помощью аргумента -T можно узнать состояние терминальной сессии. На практике это выглядит следующим образом:

$ who -T

Для чего нужна информация о состоянии терминальной сессии? От её состояния зависят некоторые нюансы в работе пользователя. Обратите внимание на название любой сессии, отображенной в окошке терминала. Если рядом с ним указан значок «+», значит, пользователь может получать сообщения от других терминалов. Если такой возможности нет, рядом с названием сессии будет указан значок «-».

При неисправности линии появится вопросительный знак.

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

$ who -q

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

$ who -u -H

При добавлении опции -d отображаются зомби-процессы:

$ who -d

Важное примечание: при использовании опции -d нельзя увидеть поле EXIT в окне терминала. Оно появляется лишь при добавлении опции -а.

Заключение

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

Благодаря выше предоставленным примерам команд вы тоже можете ощутить простоту отслеживания данных о user системы. Всего несколько нажатий клавиш – и ответы на вопросы найдены.

Подведем итоги

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

Суммируем все упомянутое:

  • Linux часто используется для обозначения всей операционной системы, но на самом деле Linux является ядром ​​операционной системы, которое запускается загрузчиком, который, в свою очередь, сам запускается BIOS / UEFI.
  • Пользовательское пространство относится ко всему, что происходит за пределами ядра. Среди программ, работающих в пользовательском пространстве, есть много основных утилит из проекта GNU, большинство из которых предназначено для запуска из командной строки (текстовый интерфейс, который позволяет вводить команды, выполнять их и просматривать результаты). Оболочка выполняет ваши команды в этом интерфейсе.
  • Список самых часто используемых команд включает в себя: pwd (отобразить рабочую директорию (print working directory)), cd (сменить директорию (change directory)), ls (перечислить содержимое директории (list file or directory contents)), mkdir (создать директорию (make directory)), rmdir (удалить директорию (remove directory)), mv, rm, and cp (переместить (move), удалить (remove), или скопировать (copy) файл или директорию соответственно), cat (связать или показать файл), less/more (показывать файлы по одной странице за раз), editor (запустить текстовый редактор), find (показать местоположение файла или директории), free (отобразить информацию о памяти), df (показать свободное пространство на диске), id (отобразить личность пользователя вместе со списком групп, к которым он принадлежит), dmesg (просмотреть журнал ядра), и journalctl (показать все доступные журналы).

  • Вы можете проверить аппаратное обеспечение в системе Kali несколькими командами: lspci (список PCI устройств), lsusb (список USB накопителей) и lspcmcia перечисляет карты PCMCIA.
  • Процесс является рабочим экземпляром программы, который требует определенный объем памяти, как для хранения самой программы, так и для её оперативных данных. Вы можете управлять процессами с помощью таких команд как: ps (показать процессы), kill (завершить процессы), bg (отправить процесс в фоновый режим), fg (вывести процесс из фонового режима на передний план), и jobs (показать все фоновые процессы).
  • Системы, основанные на Unix, являются многопользовательскими. Они поддерживают множество пользователей и групп, а также позволяют получить контроль над действиями на основе прав доступа. Вы можете управлять правами файла и директории с помощью нескольких команд, включая: chmod (изменить права доступа), chown (изменить владельца), chgrp (сменить группу).
  • Как и все другие профессиональные дистрибутивы Linux, Kali Linux организован таким образом, чтобы соответствовать стандарту иерархии файловой системы (FHS) (Filesystem Hierarchy Standard (FHS)), что в свою очередь позволяет пользователям, пришедшим из других дистрибутивов Linux, с лёгкостью начать работать с Kali.
  • Традиционно, конфигурации приложений хранятся в вашей домашней директории в скрытых файлах или директориях, названия которых начинаются точки.

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

Это интересно:

  • Как установить Kali Linux: подробная инструкция для установки на компьютер и в виртуальную машину
  • Книга «Тестирование на проникновение с Kali Linux» 2.0 на русском языке
  • Как установить Kali Linux на флешку и на внешний диск (простой способ)

Если ошибка была исправлена ​​несколько лет назад, почему это проблема сейчас?

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

Linux-дистрибутивы — это сборка самых разных пакетов. Для пользователя это означает программное обеспечение, такое как Firefox, и настольные среды, такие как Gnome, но это только верхушка айсберга. Множество других программ и библиотек, включая glibc, делают Linux тем, чем он является за кулисами. У всех этих проектов есть свои команды, которые регулярно выпускают свои обновления.

Существует множество дистрибутивов Linux , и у всех них есть различные подходы к распространению этих обновлений для своих пользователей. Например, постоянно обновляемые дистрибутивы постоянно обновляются, то есть пользователи таких дистрибутивов, как Arch, находятся в безопасности с 2013 года.

Ubuntu, если использовать другой пример, видит, что новая версия выпускается каждые шесть месяцев. Эти выпуски обычно обновляют все пакеты, которые получают обновления безопасности только после этого. Это означает, что версии Ubuntu, выпущенные в 2014 году или позже, никогда не были уязвимы для GHOST, но пользователи Ubuntu LTS были (по крайней мере, до тех пор, пока обновление безопасности не исправило ошибку).

По словам Symantec , уязвимые версии включают в себя:

  • Ubuntu LTS
  • Ubuntu LTS
  • Red Hat Enterprise Linux 5
  • SuSE Linux 7.1
  • Debian Linux 6.0

Интересно, что разработчики ChromeOS заметили этот недостаток в начале 2014 года и по этой причине сами его исправили. Мир Linux, похоже, не заметил.

Кому не стоит переходить на Linux

Есть три весомых причины не переходить на Linux и остаться на “винде”.

Во-первых, если вы играете в топовые игры. Только крутые современные проекты могут удержать вас на Windows, поиграть в популярные сетевые игры вроде CS:GO, Dota 2, Team Fortress 2 или War Thunder можно и на Linux. Есть для бесплатной ОС как порты так и официально выходящие версии многих стратегий, симуляторов, аркад и экшенов.

Если игры для вас не самое главное и вы не против сыграть во что-то 2-5 летней давности, то можно смело переходить на Linux.

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

Не радостная ситуация и с распространенным программным обеспечением для профессионалов. То же Photoshop или Pixelmator на Linux заменить практически не чем. Лучший из графических редакторов GIMP имеет довольно скромные возможности, остается только пытаться запустить нужное приложение через среду WINE.

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

Читайте также:  Как восстановить историю чатов и медиафайлы в WhatsApp

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

Во всех остальных случаях можете смело качать дистрибутив Linux и пробовать.

Как изменить владельца и группу файла

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

chown USER:GROUP FILE

Следующая команда изменит владельца файла с именем file1 на нового владельца с именем linuxize и сгруппирует users :

chown linuxize:users file1

Если опустить имя группы после двоеточия ( : ) группа файла изменяется на указанного пользователя группы входа в систему :

chown linuxize: file1

Управление пользователями

Просмотр

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

Каждый аккаунт занимает одну строку, в формате account:password:UID:GID:GECOS:directory:shell

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

Получение информации о пользователях

  • w – вывод информации (имя пользователя, рабочий терминал, время входа в систему, информацию о потребленных ресурсах CPU и имя запущенной программы) о всех вошедших в систему пользователях.
  • who – вывод информации (имя пользователя, рабочий терминал, время входа в систему) о всех вошедших в систему пользователях.
  • who am i или whoami или id – вывод вашего имени пользователя.
  • users – вывод имен пользователей, работающих в системе.
  • id <имя_пользователя> – вывод о идентификаторах пользователя: его uid, имя_пользователя, gid и имя первичной группы и список групп в которых состоит пользователь
  • groups <имя_пользователя> – вывод списка групп в которых состоит пользователь.

Добавление пользователя

Добавление пользователя осуществляется при помощи команды useradd.

sudo useradd vasyapupkin

Ключи:

Если при создании пользователя не указываются дополнительные ключи, то берутся настройки по умолчанию. Посмотерть настройки по-умолчанию можно с помощью команды useradd -D.

Если вас не устраивают такие настройки, вы можете поменять их выполнив sudo useradd -D -s /bin/bash, где -s это ключ из таблицы выше.

Изменение пользователя

Изменение параметров пользователя происходит с помощью утилиты usermod. Пример использования:

sudo usermod -c «Эта команда поменяет комментарий пользователю» vasyapupkin

Изменить пароль пользователю можно при помощи утилиты passwd.

sudo passwd vasyapupkin

Утилита passwd может использоваться и обычным пользователем для смены пароля.

Основные ключи passwd:

  • -d Удалить пароль пользователю. После этого пароль будет пустым, и пользователь сможет входить в систему без предъявления пароля.
  • -e Сделать пароль устаревшим. Это заставит пользователя изменить пароль при следующем входе в систему.
  • -i Заблокировать учетную запись пользователя по прошествии указанного количества дней после устаревания пароля.
  • -n Минимальное количество дней между сменами пароля.
  • -x Максимальное количество дней, после которого необходимо обязательно сменить пароль.
  • -l Заблокировать учетную запись пользователя.
  • -u Разблокировать учетную запись пользователя.

Установка пустого пароля пользователя

Супер пользователь с помощью утилит командной строки passwd и usermod или путем редактирования файла /etc/shadow может удалить пароль пользователь, дав возможность входить в систему без указания пароля.

sudo passwd -d vasyapupkin или sudo usermod -p «» vasyapupkin

После этого имеет смысл принудить пользователя установить себе новый пароль при следующем входе в систему.

sudo passwd -e vasyapupkin

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

Для того, чтобы удалить пользователя воспользуйтесь утилитой userdel.

sudo userdel vasyapupkin

Пример использования:

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

Управление пользователями

Для управления пользователями в Linux Ubuntu существует команда usermod, которая также может принимать множество ключей и параметров. Если помните, ранее мы создали пользователя ludos. Это обычный пользователь, не являющийся администратором и не имеющий прав использовать команду sudo. Предоставим ему эти привилегии, добавив его в группы adm и sudo. Здесь мы вынуждены сделать маленькое отступление, сказав пару слов о группах. Как просмотреть список групп и что в них хранится, вы уже в курсе, но не будет лишним также знать, что группы могут быть первичными и вторичными.

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

На досуге вы можете изучить ключи команды usermod, выполнив ее с параметром —help, а сейчас нам достаточно знать два ключа:

  • -a — ключ добавляет пользователя в указанную группу.
  • -G — специальный ключ, определяющий список дополнительных групп.
Читайте также:  WordPress установка на хостинг простыми словами

Формируем такую команду, добавляя юзера в группы adm и sudo, перечисляя их через запятую:

usermod -a -G adm,sudo ludos

Управление пользователями

Получив данные о пользователе командой id ludos, мы видим, что его ID и GID остались прежними, зато он оказался членом групп adm и sudo.

Открыв графическую оболочку управления пользователями, мы обнаруживаем, что наш обычный ludos стал администратором, а так как он входит еще и в группу sudo, то может пользоваться и привилегиями root, в чём мы и убеждаемся, войдя в учетную запись ludos, открыв терминал и запросив разрешения root.

Как в Linux добавить пользователя в группу (или вторичную группу)

Учетные записи пользователей могут быть назначены одной или нескольким группам в Linux. Вы можете настроить права доступа к файлам и другие привилегии по группам. Например, на Ubuntu только пользователи из группы sudo могут использовать команду sudo для получения повышенных разрешений.

Как создать новую группу в Linux

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

Вам также нужно будет использовать sudo с этой командой (или в дистрибутивах Linux, которые не используют sudo, вам нужно будет запустить команду su, чтобы получить повышенные разрешения перед запуском команды).

sudo groupadd new_group

Добавление существующей учетной записи пользователя в группу

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

usermod -a -G group_name user_name

Например, для добавления пользователя mial в группу sudo, используйте следующую команду:

usermod -a -G sudo mial

Изменение первичной группы пользователя

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

Чтобы изменить основную группу, которой назначен пользователь, запустите команду usermod, заменив group_name на имя группы, а user_name на имя учетной записи пользователя.

usermod -g group_name user_name

Обратите внимание здесь на -g. Когда вы используете маленькую g, вы назначаете главную группу. Когда вы используете заглавную -G , как в примерах выше, вы назначаете вторичную группу.

Как узнать, в какие группы входит пользователь

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

groups

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

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

groups user_nameВы также можете просмотреть числовые идентификаторы, связанные с каждой группой, запустив команду id и указав имя пользователя. id user_name

Первой группой в списке групп или группой, показанной после «gid=» в списке идентификаторов, является первичная группа учетной записи пользователя. Другие группы – это вторичные группы. Итак, на скриншоте ниже основной группой учетной записи пользователя является mial.

Создание нового пользователя и назначение группы в одной команде

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

useradd -G group_name user_name

Например, чтобы создать новую учетную запись пользователя с именем jsmith и назначить эту учетную запись группе ftp, вы должны запустить:

useradd -G ftp jsmith

Конечно, вы захотите назначить пароль для этого пользователя:

passwd jsmith

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

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

usermod -a -G group1,group2,group3 user_name

Например, чтобы добавить пользователя с именем mial в группы ftp, sudo и example, вы должны запустить:

usermod -a -G ftp,sudo,example mial

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

Как просмотреть все группы в системе

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

getent group

Этот вывод также покажет вам, какие учетные записи пользователей являются членами групп. Итак, на скриншоте ниже мы видим, что учетные записи пользователей syslog и mial являются членами группы adm.

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

Презентации

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

Презентации

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