Как узнать всех пользователей linux


Вывод списка пользователей Ubuntu в консоли

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

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

Как составить список пользователей в Ubuntu Linux VPS: руководство для начинающих

Если вы хотите просмотреть всех пользователей в Linux Ubuntu VPS, вы можете использовать команду /etc/passwd, поскольку данные локального пользователя сохраняются в файле «/etc/passwd». Есть два способа выполнить эту команду, а именно:

cat /etc/passwd

Или же

less /etc/passwd

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

Эти выходные строки относятся к пользователям. Количество строк зависит от количества пользователей в системе.

Каждая строка содержит семь разных полей, которые представляют подробные сведения о конкретном пользователе. Например, первая строка вывода — это root:x:0:0:root:/root:/bin/bash, что означает:

  • root — логин пользователя.
  • b — заполнитель пароля, так как фактический пароль сохраняется в отдельном файле.
  • 0 — UserID пользователя.
  • 0 — GroupID пользователя.
  • root — командное поле с некоторыми подробностями о пользователе.
  • /root — домашний каталог, который является основным каталогом пользователя.
  • /bin/bash — оболочка пользователя.

Обратите внимание, что двоеточия (:) используются для разделения значений в выводе.

Выполните следующие команды, чтобы увидеть имена пользователей:

cut -d : -f 1 /etc/passwd

Или же

awk -F: '{ print $1}' /etc/passwd

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

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

less /etc/group

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

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

cut -d : -f 1 /etc/group

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

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

getent passwd

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

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

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

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

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

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

Заключение

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

Статьи по теме:

Просмотр процессов на Linux с помощью ps

В инструкции описаны наиболее распространенные примеры использования команды ps для работы с виртуальным сервером с операционной системой семейства Linux.

Что это такое?

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

Примечание: more и less - дополнительные команды, которые помогают фильтровать и разбивать на страницы выходные данные ps, так как они часто бывают довольно длинными.

Работа с командой ps

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

ps

Результат:


 PID TTY TIME CMD
 28599 pts/0 00:00:00 bash
 28616 pts/0 00:00:00 ps
 

На выходе будут отображаться строки данных, содержащих следующую информацию: PID - это уникальный идентификатор процесса, TTY - тип терминала, TIME - это общее время использования процессорного времени процессом (00:00:00 напротив процесса bash указывает, что процессорное время вообще не было использовано до сих пор), CMD - это имя команды, которая запустила этот процесс.

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

ps -e

или:

ps -A

Пример вывода:


 PID TTY TIME CMD
 1 ? 00:00:13 systemd
 2 ? 00:00:00 kthreadd
 3 ? 00:00:01 ksoftirqd/0
 5 ? 00:00:00 kworker/0:0H
 7 ? 00:00:01 migration/0
 [...]
 

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

ps -d

Примечание: лидеры сеанса - процессы, у которых PID равен SID. Когда один процесс запускает другие процессы, он является лидером сеанса всех других процессов. Итак, представьте себе процесс A, который запускает процесс B и обрабатывает C. Процесс B запускает процесс D и процесс C запускает процесс E. Когда вы перечислите все процессы, за исключением сессий лидеров, вы увидите B, C, D и E, но не A.

Вы можете инвертировать вывод с помощью переключателя -N. Например, если вы хотите вывести только лидеров сеансов, выполните следующую команду:

ps -d -N

Очевидно, что данную опцию не очень разумно использовать с ключами -e или -A, поскольку в таком случае в консоль ничего не выведется.

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

ps T

Если вы хотите просмотреть все работающие (running) процессы, используя следующую команду:

ps r

Выбор конкретных процессов

Вы можете вывести определенные процессы с помощью ps с помощью различных критериев выбора.

Например, если вы знаете идентификатор процесса PID, вы можете просто использовать следующую команду:

ps -p <pid>

Например:

ps -p 22813

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

ps -p "<pid1> <pid2>"

Например:

ps -p "22813 28599"

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

ps -p <pid1>,<pid2>

Например:

ps -p 22813,28599

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

ps -C <команда>

Например:

ps -C nginx

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

ps -G <groupname>
ps --Group <groupname>

Например, чтобы узнать все процессы, выполняемые группой accounts, выполните следующие действия:

ps -G "accounts"
ps --Group "accounts"

Вы также можете выполнять поиск по идентификатору группы GID вместо имени группы с помощью строчной буквы g следующим образом:

ps -g <groupid>
ps --group <groupid>

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

ps U <userlist>

Например:

ps U gary

Обратите внимание, что это показывает человека, чьи учетные данные используются для запуска команды. Например, если вы вошли в систему как gary и запустите указанную выше команду, она покажет всю команду, которую вы выполняете. Если вы входите в систему как tom и используете sudo для запуска команды, то приведенная выше команда покажет команду tоm’а, которую запускает gary, а не tom.

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

ps -U "gary"

Форматирование вывода команды ps

По умолчанию вы получаете четыре столбца, когда используете команду ps: PID, TTY, Time, Command. О них написано в начале статьи.

Вы можете получить полный список, выполнив следующую команду:

ps -ef

Опция -e, показывает все процессы, а -f показывает полную информацию: UID - идентификатор пользователя выполняющего команду, PID - это идентификатор процесса команды, PPID - идентификатор родительского процесса, который отпустил команду, C - количество дочерних процессов, STIME - это время начала процесса, TTY, TIME, CMD.

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

ps -eF

Дополнительные столбцы - SZ, RSS и PSR. SZ - это размер процесса, RSS - реальный размер памяти, а PSR - процессор, которому назначена команда.

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

ps -e --format <format>

Доступны следующие форматы: %cpu, %mem, args, c, cmd, comm, cp, cputime, egid, egroup, etime, euid, euser, gid, group, pgid, pgrp, ppid, start, sz, thcount, time, uid, uname и многие другие, ознакомиться с ними в разделе помощи man.

Чтобы использовать форматы, введите следующее:

ps -e --format="uid uname cmd time"

Вы можете смешивать и сопоставлять элементы по своему усмотрению.

Сортировка вывода

Чтобы отсортировать выходные данные, используйте следующие обозначения:

ps -ef --sort <sortcolumns>

Доступны следующие форматы: cmd, pcpu, flags, pgrp, cutime, cstime, utime, pid, ppid, size, uid, user и многие другие, ознакомиться с ними в разделе помощи man.

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

ps -ef --sort user,pid

Использование ps совместно с grep, more и less

Команды less и more помогают вам подробно просматривать результаты по одной странице за раз:

ps -ef | more
ps -ef | less

Утилита grep помогает фильтровать результаты из команды ps, например, чтобы вывести строки содержащие ключевое слово nginx:

ps -ef | grep nginx

Команда ps обычно используется для листинга процессов в Linux.

 

P. S. Другие инструкции:


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

Спасибо за Вашу оценку! К сожалению, проголосовать не получилось. Попробуйте позже

Страница не найдена – Information Security Squad

  • 📒 Как создать список слов из содержимого Веб-сайта 07.01.2022

    Как создать словарь из содержимого сайта Мы уже писали о создании словарей паролей в статьях 📖 Территориально-лингвистические особенности создания словаря паролей для Bruteforce 🎵 Создаем словарь для brute-force из текстов песен артистов Однако сегодня рассмотрим метод, где источником слов будет является Веб-сайт потенциальной жертвы, и для этого мы будем использовать Cewl Cewl – это предустановленный инструмент в […]

  • 🖧 Как настроить WireGuard VPN на Rocky Linux 8 06.01.2022

    WireGuard – это бесплатная VPN с открытым исходным кодом и современной криптографией. Wireguard работает в архитектуре сервер-клиент, где сервер WireGuard отвечает за маршрутизацию трафика клиентов в определенные сети. В этом руководстве мы рассмотрим, как установить сервер WireGuard VPN на Rocky Linux 8. Установка WireGuard VPN сервера на Rocky Linux 8 Ниже описаны шаги, как установить […]

  • 🖧 Как разрешить весь трафик с сервера с помощью firewalld в CentOS/RHEL 02.01.2022

    В этой заметке описаны шаги по добавлению узла или сетевого диапазона в доверенную зону в firewalld, чтобы разрешить весь трафик независимо от порта назначения. Чтобы создать правило для разрешения всего трафика с узла или сетевого диапазона, оно должно использовать trusted сетевую зону в firewalld. 1. Чтобы добавить хост в доверенную зону, выполните следующие действия: # […]

  • 🖧 Как игнорировать ошибки проверки сертификата при использовании wget 31.12.2021

    Игнорируем ошибки проверки сертификата при использовании wget. Попробуйте получить доступ к адресу, защищенному самоподписанным сертификатом. $ wget --output-document - https://nextcloud.example.org --2021-07-16 13:59:59-- https://nextcloud.example.org/ Resolving nextcloud.example.org (nextcloud.example.org)... 192.168.8.32 Connecting to nextcloud.example.org (nextcloud.example.org)|192.168.8.32|:443... connected. ERROR: cannot verify nextcloud.example.org's certificate, issued by ‘CN=nextcloud.example.org’: Self-signed certificate encountered. To connect to nextcloud.example.org insecurely, use `--no-check-certificate'. $ wget --quiet --no-check-certificate --output-document […]

  • 🐧 Советы по обеспечению безопасности сервера Linux для новичков 28.12.2021

    Как обеспечить безопасность Linux? Поскольку так много наших личных и профессиональных данных сегодня доступно в Интернете, важно, чтобы все – от профессионалов до обычных пользователей Интернета – знали основы безопасности и конфиденциальности. Будучи студентом, я смог получить опыт в этой области в рамках самообразования, а именно изучения различных иностранных материалов, так как в институте рассказывали […]

  • СЗИ НСД Dallas Lock Linux

    Сертификат ФСТЭК России № 3594 от 04 июля 2016 г.

    Решите проблемы безопасности быстро и эффективно

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

    СЗИ НСД Dallas Lock Linux обеспечивает защиту персональных, портативных и мобильных компьютеров, серверов (файловых, контроллеров домена и терминального доступа), работающих как автономно, так и в составе ЛВС. Поддерживает виртуальные среды.

    Нужно отслеживать действия пользователей в автоматизированной системе.

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

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

    Контроль целостности объектов файловой системы и реестра, программно-аппаратной среды компьютера защищает от несанкционированного изменения, установки или удаления программ и файлов. А механизм дискреционного доступа позволит не допустить несанкционированный запуск с помощью атрибута «выполнение», выставленного на конкретный объект файловой системы.

    В инфраструктуре более 50 машин и их количество растет. Необходимо периодически проводить оперативное внедрение СЗИ НСД.

    С помощью специального модуля «Сервер безопасности» можно организовать быструю удаленную установку СЗИ НСД одновременно на группу компьютеров. Централизованное управление обновлениями, мониторинг и администрирование выполняются через удобный интерфейс.

    Необходимо выполнить требования ФСТЭК России в части защиты информации от НСД для прохождения аттестации информационной системы.

    Наличие сертификатов ФСТЭК России позволяет привести АС, ИСПДн, ГИС, АСУ ТП и КИИ в соответствие требованиям законодательства РФ по защите информации от НСД.

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

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

    На АРМ установлены различные дистрибутивы ОС Linux. Необходимо решение, которое сможет защитить все компьютеры.

    СЗИ НСД Dallas Lock Linux поддерживает широкий набор наиболее популярных и распространенных дистрибутивов ОС Linux, включая российские ОС.

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

    Управление Dallas Lock Linux может производиться через консоль управления СЗИ НСД с современным графическим интерфейсом (GUI) из операционных систем Windows и Linux, в том числе удаленно.

    В организации принято решение об обязательной двухфакторной аутентификации пользователя при входе в ОС.

    Dallas Lock Linux позволяет использовать следующие распространенные виды аппаратных идентификаторов: электронные ключи Touch Memory (iButton), USB-ключи и смарт-карты Рутокен, USB-ключи и смарт-карты Aladdin eToken, JaCarta (JaCarta ГОСТ, JaCarta PKI).

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

    Хотя вы, вероятно, знаете, как войти в систему Linux с одной учетной записью пользователя, и вы знакомы с корневой учетной записью, у вас, скорее всего, нет простой утилиты для просмотра всех учетных записей, которые в настоящее время находятся в вашей системе. К счастью, взлом одной командной строки — это все, что вам нужно, чтобы поднять весь список. Это, конечно, означает, что вам нужно сначала запустить командную строку.

    Нажмите Super + T или Ctrl + Alt + T, чтобы запустить графический режим. Вы также можете поискать слово «Терминал» в Ubuntu Unity Dash или найти программу в разделе «Системные инструменты и утилиты» в меню приложений KDE или в меню Xfce4 Whisker. В зависимости от используемого вами дистрибутива вам, вероятно, не понадобятся какие-либо специальные привилегии для запуска этой команды. В большинстве современных дистрибутивов по крайней мере некоторые задачи администратора назначаются первому пользователю, но вы всегда можете добавить sudo к этим командам, если это необходимо.

    Способ 1: получение списка всех пользователей Linux

    Вы должны иметь возможность просматривать список всех пользователей, набрав в командной строке следующую команду гетент passwd | cut -d ’:’ -f1 | Меньше тем не менее, поскольку это так долго, вы можете скопировать и вставить его с этого веб-ресурса. Если это так, убедитесь, что в меню эмулятора терминала нажмите «Правка» и нажмите «Вставить». Возможно, вы также захотите использовать Shift + Ctrl + V для вставки, но имейте в виду, что Ctrl + V не вставляет в большинство эмуляторов терминала, поскольку в командной строке это имеет другую функцию.

    Эта команда должна вывести длинную строку, которую вы можете просмотреть либо с помощью клавиш курсора, либо с помощью клавиш J и K для прокрутки вверх и вниз. Введите q, чтобы выйти. Если вы впервые просматриваете всех пользователей вашей системы, вы, скорее всего, будете удивлены. Не беспокойтесь, потому что ваша система вообще не была взломана. В дистрибутивах общего назначения GNU / Linux много учетных записей пользователей, настроенных для запуска различных процессов, отличных от root. Ваше действительное имя пользователя в однопользовательской системе более чем вероятно может быть найдено близко к концу.

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

    Способ 2: найти количество пользователей

    Поскольку этот список, вероятно, довольно длинный и неуклюжий, вам нужно использовать утилиту wc или word count, чтобы найти точное количество учетных записей пользователей, настроенных в вашей системе. В командной строке введите или скопируйте гетент passwd | туалет затем нажмите ввод. Вам не нужно будет использовать канал для такой программы, как более или менее, потому что это будет всего лишь несколько цифр.

    В образце тестовой системы Xubuntu, который мы использовали для создания снимков экрана, было не менее 38 учетных записей пользователей, хотя единственная реальная учетная запись реального пользователя является единственным способом входа на эту машину. Это связано с тем, что эта программа считает псевдо-аккаунты, созданные этими пакетами. К счастью, есть способ ограничить себя подсчетом только реальных.

    Если вы хотите увидеть, кто вошел в систему, введите пользователи и нажмите ввод. Большинство людей, использующих дистрибутив на основе Debian, обнаружат, что у них есть только их учетная запись плюс root. Серверные системы и многопользовательские конфигурации, работающие с чем-то вроде CentOS или Red Hat Enterprise Linux, могут обнаружить, что одновременно регистрируется гораздо больше учетных записей, если они не используют виртуальные машины, чтобы уменьшить счет. Обратите внимание, что пользователи, вошедшие в виртуальные машины, работающие на голом железе, будут отображаться только как зарегистрированные из их собственных сред.

    Немного больше информации можно получить, запустив команду кто без аргументов вообще. Вы найдете, в какие терминалы подключен каждый из пользователей. Помните, что tty7 — это графический сервер X или Wayland, с которым вы работаете, если у вас установлен Unity или GNOME. Это объясняет, почему ваша учетная запись пользователя может показывать, что вы вошли где-то, даже если вы используете только стандартный рабочий стол. На самом деле, из-за исторического любопытства Unix и того, как системы Unix управляют пользовательскими устройствами, вы увидите это, даже если у вас есть что-то с сенсорным экраном.

    Изучите необходимый минимум Linux, чтобы быть продуктивным

    Разные операционные системы длительное время обслуживают различные аудитории: Windows — бизнес-профессионалов, Mac — творческих, а Linux — разработчиков. Разработчикам ОС такой тип рыночного спектра сильно упростил концепцию продукта, технические требования, пользовательский опыт и направление рынка. Однако, он также ужесточил нормы рабочего пространства, что деформировало отдельных пользователей под узкие, непересекающиеся области: у бизнесменов нет возможности заглянуть в творческий процесс, а у разработчиков нет представления о проблемах бизнеса.

    В реальности знания и опыт — динамичны, они охватывают несколько дисциплин и сфер деятельности. Представление о том, что "можно иметь способности только к чему-то одному" — это не руководство к овладению мастерством, а попытка справиться с преждевременной оптимизацией. Узнать о том, в чём вы хорошо разбираетесь можно только когда вы попробовали себя в нескольких разных вопросах. И может оказаться, что у вас есть способности ко многим видам деятельности.

    Для современных бизнес-аналитиков особенно актуален вопрос ликвидации пробела между бизнесом и разработкой. Бизнес-аналитики должны быть двухплатформенными, способными использовать командную строку, доступную только на Linux (или в macOS), но при этом уметь извлекать широкие возможности из Microsoft Office в Windows. Очевидно, что мир Linux пугает тех, у кого образование в сфере бизнеса. К счастью, как и в большем количестве вопросов, вам необходимо изучить 20% информации, чтобы выполнить 80% работы. Вот мои 20%.

    Почему современные бизнес-аналитики должны знать Linux

    Благодаря своим open source корням, Linux выиграл от вкладов тысяч разработчиков за всё время его существования. Они построили программы и утилиты, чтобы упростить работу не только себе, но и тем программистам, которые последовали за ними. В результате open source разработка создала эффект сетевой выгоды: чем больше разработчики строили утилиты на оригинальной платформе, тем больше других разработчиков могло влиять на эти утилиты, чтобы писать собственные программы.

    В результате получился огромный пакет программ и утилит (то есть софт), который был написан на Linux и под Linux. Большая часть его никогда не портировалась в Windows. Один из примеров — популярная система контроля версий (VCS), которая называется git. Разработчики могли написать софт под Windows, но они этого не сделали. Они написали его для работы в командной строке, для Linux, потому что Linux — экосистема, в которой уже были все необходимые инструменты.

    Если вдаваться в подробности, разработка на Windows ведёт к двум основным проблемам:

    1. Базовые задачи, вроде парсинга файлов, рабочего планирования и поиска текста используются чаще, чем запуск утилиты командной строки.
    2. Языки программирования (Python, C++) и связанные с ними библиотеки выкидывают ошибки, потому что они ожидают конкретных параметров Linux или специфических локаций файловой системы.

    Если собрать всё вместе, это выльется в трату времени на переписывание базовых инструментов, которые уже доступны в Linux, они позволят избежать ошибок совместимости с ОС. Тут нет никаких сюрпризов — экосистема Windows просто не была задумана и спроектирована под нужды разработки софта.

    Теперь давайте рассмотрим базовые идеи Linux.

    Фундаментальная единица Linux: "оболочка"

    Shell (оболочка, также известная как терминал, консоль или командная строка) — это текстовый интерфейс пользователя, через который команды отправляются машине. На Linux, по-умолчанию, язык оболочки называется bash. В отличие от Windows-пользователей, которые в своём большинстве используют навигацию "навести-кликнуть" по окну, Linux-разработчики привязаны к клавиатуре и пишут команды в оболочке. Хоть этот переход далёк от естественного для тех, у кого нет бэкграунда в программировании, плюсы разработки в Linux сильно перевешивают изначальное вложение в обучение.

    Изучаем несколько важных концептов

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

    Linux кажется непроницаемым для тех, кто не касается разработки, из-за способа, которым разработчики (не напрягаясь) извергают эзотерические команды терминала, когда им захочется. Правда в том, что они хорошо знают только несколько десятков команд — за всем более сложным они так же (как и все смертные) обращаются в Google.

    Опуская мелкие загвоздки, стоящие на пути, вот главные концепты в bash.

    Командный синтаксис

    Команды соответствуют синтаксису: {command} {arguments..}

    Например, в 'grep -inr', grep — это команда (для поиска текстовой строки) и -inr это флаги/аргументы, которые меняют то, что grep выполняет по умолчанию. Единственный способ понять, что это значит, поискать что-то о них через Google или просто ввести 'man grep'. Я рекомендую выучить команды и их самые используемые аргументы: слишком обременительно помнить, что делает каждый флаг.

    Псевдонимы директорий
    • Текущая директория (где я?): .
    • Родительская директория текущей директории: ..
    • Домашняя директория пользователя: ~
    • Корень файловой системы (или родитель всех родителей): /

    Например, чтобы поменять текущую директорию на родительскую директорию нужно ввести: cd ..

    Таким же способом, чтобы скопировать файл, расположенный в "/path/to/file.txt" в текущую директорию, нужно ввести cp /path/to/file.txt . (заметьте, что в конце команды точка). Поскольку это всего лишь псевдонимы, вместо них может использоваться реальное имя пути.

    Полезная информация У нас есть курс по операционным системам. Зарегистрированные пользователи могут пройти его бесплатно. Другие бесплатные курсы можно найти по ссылке.

    STDIN / STDOUT

    Всё, что вы пишите в окне и подтверждаете (с помощью ENTER), называется стандартным вводом (STDIN).

    Всё, что программа выводит в ответе в терминал (например текст из файла), называется стандартным выводом (STDOUT)

    Конвейер (piping)
    1. | 

    Pipe принимает STDOUT от команды слева от pipe и превращает его в STDIN для команды справа от pipe.

    пример: echo 'test text' | wc -l

    1. >

    Символ "больше" принимает STDOUT от команды слева и записывает/перезаписывает в новый файл справа

    пример:  ls > tmp.txt

    1. >>

    Два символа "больше" принимают STDOUT от команды слева и добавляют к новому или существующему файлу справа.

    пример: date >> tmp.txt

    Шаблоны поиска (wildcards)

    Можете представить это как символ % в SQL. Например, можно написать WHERE first_name LIKE 'John%', чтобы найти любые позиции, где данные начинаются с имени John.

    В bash можно написать John*. Если вы хотите вывести список всех файлов в какой-то папке, заканчивающихся на ".json", пишете : ls *.json

    Завершение с помощью tab

    Bash часто завершает команды сам, по определённой логике, если вы начинаете вводить команду и нажимаете TAB.

    Однако, стоит попробовать что-то вроде zsh или fish для автозаполнения, потому что запоминать команды и все их параметры очень сложно. Более того, эти инструменты применят автозаполнение, основываясь на вашей истории используемых команд.

    Выход

    Иногда вы застреваете в какой-нибудь программе и не можете оттуда выйти. Это очень часто повторяющееся событие для новичков в Linux, которое невероятно демотивирует. Часто выход происходит с помощью чего-то, содержащего q. Хорошо бы запомнить то, что будет написано ниже и использовать, когда вы в ловушке.

    • Bash
    • Python: quit()
    • Nano: CTRL+x
    • Vim: <Esc> :q!
    Что я помню из команд bash

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

    • cd {directory} изменить директорию
    • ls -lha вывести директорию в виде списка (подробного)
    • vim или nano редактор командной строки
    • touch {file} создать новый пустой файл
    • cp -R {original_name} {new_name} скопировать файл или директорию (и всё их содержимое)
    • mv {original_name} {new_name} переместить или переименовать файл
    • rm {file} удалить файл
    • rm -rf {file/folder} удалить файл или папку без возможности восстановления [использовать аккуратно!]
    • pwd вывести текущую рабочую директорию
    • cat или less или tail или head -n10 {file} вывести в STDOUT содержимое файла
    • mkdir {directory} создать пустую директорию
    • grep -inr {string} найти строку в любом файле этой директории или дочерних директориях
    • column -s, -t <delimited_file> отобразить разделенный запятыми файл в виде столбцов

    • ssh {username}@{hostname} соединиться с удалённой машиной

    • tree -LhaC 3 показать структуру директории на 3 уровнями вглубь (с размерами файлов и включая скрытые директории)

    • htop (или top) диспетчер задач

    • pip install --user {pip_package} пакетный менеджер Python для установки пакетов в ~/.local/bin

    • pushd . ; popd ; dirs; cd - push/pop/view директорию в стек + изменить обратно на последнюю директорию

    • sed -i "s/{find}/{replace}/g" {file} заменить строку в файле

    • find . -type f -name '*.txt' -exec sed -i "s/{find}/{replace}/g" {} \; заменить строку для каждого файла в этой и дочерней папках с именем типа *.txt

    • tmux new -s session, tmux attach -t session создать новую сессию терминала без создания нового окна [продвинутый уровень]

    • wget {link} загрузить веб-страницу или веб-ресурс

    • curl -X POST -d "{key: value}" http://www.google.com отправить HTTP-запрос на веб-сервер

    • find <directory> вывести список всего содержимого директории и её дочерних директорий рекурсивно

    Читайте также Как упростить разработку с помощью виртуализации.

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

    Я считаю хорошей практикой хранить список команд, которые полезны в определённых ситуациях, даже если подобные ситуации случаются редко (например, какой процесс блокирует конкретный сетевой порт). Вот несколько нестандартных команд, которые у меня всегда под рукой:

    • lsof -i :8080 вывести список дескрипторов открытых файлов (-i — флаг для сетевых интерфейсов)
    • netstat | head -n20 вывести список открытых интернет/UNIX сокетов и связанной с ними информации
    • dstat -a транслировать текущий диск, сеть, активность CPU и другое
    • nslookup <IP address> найти hostname для удалённого IP-адреса
    • strace -f -e <syscall> <cmd> отследить системные вызовы программы (-e — флаг для фильтрования конкретных системных вызовов)
    • ps aux | head -n20 вывести текущие активные процессы
    • file <file> проверить тип файла (например исполняемый, бинарный, текстовый файл с кодировкой ASCII)
    • uname -a информация о ядре ОС
    • lsb_release -a информация об ОС
    • hostname проверить hostname текущего компьютера (например, название, чтобы другие компьютеры могли иметь доступ к вашему)
    • pstree визуализировать форки процессов
    • time <cmd> исполнить команду и составить статистику о том, сколько времени потребовалось на исполнение
    • CTRL + z ; bg; jobs; fg отправить процесс в текущий tty в background и обратно на передний план
    • cat file.txt | xargs -n1 | sort | uniq -c посчитать количество уникальных слов в файле
    • wc -l <file> количество строк в файле
    • du -ha показать размер на диске для директорий и их содержимого
    • zcat <file.gz> вывести содержимое заархивированного текстового файла
    • scp <user@remote_host> <local_path> скопировать файл с удалённого на локальный сервер или наоборот
    • man {command} показать инструкцию, (т.е. документацию) для команды (но скорее всего легче использовать Google)

    Это перевод статьи Алекса Петралиа Learn just enough Linux to get things done. 

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

    Редактирование файла Sudoers | DigitalOcean

    Введение

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

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

    В этой статье мы обсудим, как правильно и безопасно получать привилегии root, и при этом уделим особое внимание редактированию файла /etc/sudoers.

    Мы выполним эти действия на сервере Ubuntu 20.04, но данная процедура будет выглядеть примерно так же и на других современных дистрибутивах Linux, таких как Debian и CentOS.

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

    Примечание. В этом учебном модуле подробно рассказывается об эскалации прав и о файле sudoers. Если вы просто хотите предоставить пользователю права sudo, воспользуйтесь нашими краткими учебными модулями Создание нового пользователя с правами Sudo для Ubuntu и CentOS.

    Получение привилегий root

    Существует три способа получить привилегии root, различающиеся по сложности.

    Войдите в систему как пользователь Root

    Самый простой и удобный способ получить привилегии root — просто войти на сервер как пользователь root.

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

    Если вы используете для входа SSH, укажите имя пользователя root перед IP-адресом или доменным именем в строке подключения SSH:

    • ssh root@server_domain_or_ip

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

    Использование su для получения прав root

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

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

    Для этого можно использовать команду su (substitute user) для замены пользователя. Чтобы получить привилегии root, введите:

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

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

    Использование sudo для выполнения команд от имени пользователя root

    Последний способ получения привилегий root заключается в использовании команды sudo.

    Команда sudo позволяет выполнять разовые команды с привилегиями root без необходимости создавать новую оболочку. Она выполняется следующим образом:

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

    В связи с вопросами безопасности доступ sudo не предоставляется пользователям по умолчанию, и его необходимо настроить перед использованием. Ознакомьтесь с нашими краткими руководствами Создание нового пользователя с привилегиями Sudo для Ubuntu и CentOS, чтобы научиться настраивать нового пользователя с правами sudo.

    В следующем разделе мы более подробно расскажем о том, как изменять конфигурацию sudo.

    Что такое Visudo?

    Команда sudo настраивается с помощью файла, расположенного в каталоге /etc/sudoers.

    Предупреждение. Никогда не редактируйте этот файл в обычном текстовом редакторе! Всегда используйте для этой цели только команду visudo!

    Неправильный синтаксис файла /etc/sudoers может нарушить работу системы и сделать невозможным получение повышенного уровня привилегий, и поэтому очень важно использовать для его редактирования команду visudo.

    Команда visudo открывает текстовый редактор обычным образом, но проверяет синтаксис файла при его сохранении. Это не даст ошибкам конфигурации возможности блокировать операции sudo, что может быть единственным способом получить привилегии root.

    Обычно visudo открывает файл /etc/sudoers в текстовом редакторе vi. Однако в Ubuntu команда visudo настроена на использование текстового редактора nano.

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

    • sudo update-alternatives --config editor

    Output

    There are 4 choices for the alternative editor (providing /usr/bin/editor). Selection Path Priority Status ------------------------------------------------------------ * 0 /bin/nano 40 auto mode 1 /bin/ed -100 manual mode 2 /bin/nano 40 manual mode 3 /usr/bin/vim.basic 30 manual mode 4 /usr/bin/vim.tiny 10 manual mode Press <enter> to keep the current choice[*], or type selection number:

    Выберите число, соответствующее желаемому варианту выбора.

    В CentOS для изменения этого значения можно добавить следующую строку в ~/.bashrc:

    • export EDITOR=`which name_of_editor`

    Исходный файл для внесения изменений:

    После настройки visudo выполните эту команду для доступа к файлу /etc/sudoers:

    Изменение файла Sudoers

    Файл /etc/sudoers откроется в выбранном вами текстовом редакторе.

    Я скопировал и вставил файл с сервера Ubuntu 18.04 с удаленными комментариями. Файл CentOS /etc/sudoers содержит намного больше строк, и некоторые из них не будут обсуждаться в этом руководстве.

    /etc/sudoers

    Defaults env_reset Defaults mail_badpass Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin" root ALL=(ALL:ALL) ALL %admin ALL=(ALL) ALL %sudo ALL=(ALL:ALL) ALL #includedir /etc/sudoers.d 

    Давайте посмотрим, что делают эти строки.

    Строки по умолчанию

    Первая строка Defaults env_reset сбрасывает среду терминала для удаления переменных пользователя. Эта мера безопасности используется для сброса потенциально опасных переменных среды в сеансе sudo.

    Вторая строка, Defaults mail_badpass, предписывает системе отправлять уведомления о неудачных попытках ввода пароля sudo для настроенного пользователя mailto. По умолчанию это учетная запись root.

    Третья строка, начинающаяся с “Defaults secure_path=…”, задает переменную PATH (места в файловой системе, где операционная система будет искать приложения), которая будет использоваться для операций sudo. Это предотвращает использование пользовательских путей, которые могут быть вредоносными.

    Строки пользовательских привилегий

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

    • root ALL=(ALL:ALL) ALL Первое поле показывает имя пользователя, которое правило будет применять к (root).

    • root ALL=(ALL:ALL) ALL Первое “ALL” означает, что данное правило применяется ко всем хостам.

    • root ALL=(ALL:ALL) ALL Данное “ALL” означает, что пользователь root может запускать команды от лица всех пользователей.

    • root ALL=(ALL:ALL) ALL Данное “ALL” означает, что пользователь root может запускать команды от лица всех групп.

    • root ALL=(ALL:ALL) ALL Последнее “ALL” означает, что данные правила применяются всем командам.

    Это означает, что наш пользователь root сможет выполнять любые команды с помощью sudo после ввода пароля.

    Строки групповых привилегий

    Следующие две строки похожи на строки привилегий пользователя, но задают правила sudo для групп.

    Имена, начинающиеся с %, означают названия групп.

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

    Строка Included /etc/sudoers.d

    Последняя строка выглядит как комментарий:

    /etc/sudoers

    . . . #includedir /etc/sudoers.d 

    Она действительно начинается с символа #, который обычно обозначает комментарии. Однако данная строка означает, что файлы в каталоге /etc/sudoers.d также рассматриваются как источники и применяются.

    Файлы в этом каталоге следуют тем же правилам, что и сам файл /etc/sudoers. Любой файл, который не заканчивается на ~ и не содержит символа ., также считывается и добавляется в конфигурацию sudo.

    В основном это нужно, чтобы приложения могли изменять привилегии sudo после установки. Размещение всех правил в одном файле в каталоге /etc/sudoers.d позволяет видеть, какие привилегии присвоены определенным учетным записям, а также легко сменять учетные данные без прямого изменения файла /etc/sudoers.

    Как и в случае с файлом /etc/sudoers, другие файлы в каталоге /etc/sudoers.d также следует редактировать с помощью команды visudo. Для редактирования этих файлов применяется следующий синтаксис:

    • sudo visudo -f /etc/sudoers.d/file_to_edit

    Присвоение пользователю привилегий Sudo

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

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

    Например, в Ubuntu 20.04 группа sudo имеет полные привилегии администратора. Добавляя пользователя в эту группу, мы предоставляем ему такие же привилегии:

    • sudo usermod -aG sudo username

    Также можно использовать команду gpasswd:

    • sudo gpasswd -a username sudo

    Обе команды выполняют одно и то же.

    В CentOS эта группа обычно называется wheel, а не sudo:

    • sudo usermod -aG wheel username

    Также можно использовать gpasswd:

    • sudo gpasswd -a username wheel

    Если в CentOS добавление пользователя в группу не срабатывает сразу же, вам может потребоваться отредактировать файл /etc/sudoers, чтобы убрать символ комментария перед именем группы:

    /etc/sudoers

    . . . %wheel ALL=(ALL) ALL . . . 

    Настройка персонализированных правил

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

    Создание псевдонимов

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

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

    /etc/sudoers

    . . . User_Alias GROUPONE = abby, brent, carl User_Alias GROUPTWO = brent, doris, eric, User_Alias GROUPTHREE = doris, felicia, grant . . . 

    Имена групп должны начинаться с заглавной буквы. Затем мы можем дать участникам группы GROUPTWO разрешение на обновление базы данных apt, создав следующее правило:

    /etc/sudoers

    . . . GROUPTWO ALL = /usr/bin/apt-get update . . . 

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

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

    /etc/sudoers

    . . . Cmnd_Alias POWER = /sbin/shutdown, /sbin/halt, /sbin/reboot, /sbin/restart GROUPTHREE ALL = POWER . . . 

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

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

    /etc/sudoers

    . . . Runas_Alias WEB = www-data, apache GROUPONE ALL = (WEB) ALL . . . 

    Это позволит любому участнику группы GROUPONE выполнять команды от имени пользователя www-data или пользователя apache.

    Необходимо помнить, что в случае конфликта правил более поздние правила имеют приоритет перед более ранними.

    Фиксация правил

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

    Команда updatedb, связанная с пакетом mlocate, относительно безобидна при ее выполнении в системе с одним пользователем. Если мы хотим разрешить пользователям выполнять ее с привилегиями root без ввода пароля, мы можем создать правило следующего вида:

    /etc/sudoers

    . . . GROUPONE ALL = NOPASSWD: /usr/bin/updatedb . . . 

    NOPASSWD — это свойство, означающее, что пароль не запрашивается. У него есть сопутствующее свойство PASSWD, которое используется по умолчанию и требует ввода пароля. Данное свойство актуальной для остальной части строки, если его действие не переопределяется дублирующим тегом в этой же строке.

    Например, мы можем использовать следующую строку:

    /etc/sudoers

    . . . GROUPTWO ALL = NOPASSWD: /usr/bin/updatedb, PASSWD: /bin/kill . . . 

    Также полезно свойство NOEXEC, которое можно использовать для предотвращения опасного поведения некоторых программ.

    Например, некоторые программы, такие как less, могут активировать другие команды, вводя их через свой интерфейс:

    !command_to_run 

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

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

    /etc/sudoers

    . . . username ALL = NOEXEC: /usr/bin/less . . . 

    Прочая информация

    При работе с sudo может быть полезна следующая информация.

    Если вы зададите в файле конфигурации пользователя или группу, от имени которых выполняются команды, вы можете выполнять команды от их имени, используя флаги -u и -g соответственно:

    • sudo -u run_as_user command
    • sudo -g run_as_group command

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

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

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

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

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

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

    У вас несомненно будут случаи, когда запущенная команда не будет выполняться, потому что вы забудете добавить префикс sudo. Чтобы не вводить команду повторно, вы можете воспользоваться функцией bash, позволяющей повторить последнюю команду:

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

    При желании вы можете добавить следующую строку в файл /etc/sudoers с помощью visudo:

    /etc/sudoers

    . . . Defaults insults . . . 

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

    Output

    [sudo] password for demo: # enter an incorrect password here to see the results Your mind just hasn't been the same since the electro-shock, has it? [sudo] password for demo: My mind is going. I can feel it.

    Заключение

    Теперь вы понимаете, как читать и редактировать файл sudoers и знаете, какие методы вы можете использовать для получения привилегий root.

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

    ZG Polska Zentica - Как просмотреть список пользователей и групп в Linux

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

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

    Есть несколько способов сделать это Список пользователей и групп Linux .

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

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

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

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

    Чтобы получить список пользователей в Linux, вы должны запустить команду «cat» в файле «/etc/passwd».При выполнении этой команды отобразится список пользователей, доступных в данный момент в вашей системе.

    Кроме того, вы можете использовать команду «меньше» или «больше» для навигации по списку имен пользователей.

     $кошка/etc/passwd $ меньше /etc/passwd $ больше /etc/passwd  

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

    Примечание: Это не означает, что пользователей сейчас подключены к !

    Но что вообще означают столбца с файлом passwd?

    В качестве примечания: «x» в столбце пароля означает, что пароль зашифрован и находится в файле /etc/shadow.

    Теперь, когда вы знаете, как просмотреть список пользователей на хосте Linux, давайте посмотрим, как эффективно извлечь список имен пользователей.

    Отображать имена пользователей с помощью файла /etc/passwd

    Как вы могли заметить, файл /etc/passwd Файл состоит из строк, разделенных двоеточиями.

    a — Отображение имен пользователей с помощью выреза

    Чтобы просмотреть имена пользователей в Linux, используйте команду «cat» и передайте ее команде «cut», чтобы извлечь имена пользователей, доступные в первом столбце файла.

    Для этого выполните следующую команду

     $ cat /etc/passwd | вырезать -d: -f1  

    Сначала вы печатаете список всех записей в файле passwd. Затем эти результаты передаются (используя каналы Linux и перенаправление) команде cut.

    Команда cut определяет пользовательский разделитель (с параметром d), равный двоеточию.

    Наконец, мы извлекаем первое полученное поле результата. В данном случае оно равно именам пользователей, определенным нашей схемой в столбцах passwd.

    b - Отображение имен пользователей с помощью awk

    Чтобы отобразить имена пользователей в Linux, вы также можете использовать команду «cat» вместе с командой «awk», которая похожа на команду «cut», которую мы видели ранее.

    Напоминаем, что команда awk (или mawk) является интерпретатором языка программирования AWK.

    AWK — это язык программирования, предназначенный для облегчения извлечения данных и обработки потоков данных.

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

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

     $ cat /etc/passwd | awk -F: 'напечатать $1'  

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

    Самый простой способ составить список пользователей в системе Linux — использовать команду «getent» с аргументом «passwd» и указать необязательного пользователя, которого вы хотите отобразить в системе.

      getent passwd <необязательный_пользователь>  

    Напоминаем, что команда getent получает записи из файлов Базы данных коммутатора службы имен .

    Коммутатор службы имен

    — это утилита Unix, которая извлекает записи из набора различных источников данных, таких как файлы , LDAP, DNS-сервер или сетевая информационная служба .

    Список всех доступных источников данных можно прочитать из файла nsswitch.conf , расположенного в /etc.

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

    Чтобы получить список пользователей, использующих функцию getent, выполните следующую команду

      $ получить пароль  

    a - Отображает имена пользователей из getent

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

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

      $ получить пароль | вырезать -d: -f1  

    или с AWK

      $ получить пароль | awk -F: 'напечатать $1'  

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

    Как упоминалось ранее, проверка файла passwd с помощью less или getent, не дает списка всех подключенных пользователей на вашем хосте.

    Для этого вы будете использовать команду who.

      $ кто  

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

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

    $ 90 028 90 029 пользователей Zentica Global Джон

    Очень полезно!

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

    Просмотр групп в Linux с помощью файла /etc/group

    Чтобы получить список групп в Linux, вам нужно запустить команду "cat" в файле "/etc/group".При выполнении этой команды отобразится список групп, доступных в системе.

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

     $ кат/и т.д/группа $ меньше / etc / группа $ больше / etc / группа  

    Но что представляют столбцы группового файла?

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

    Как видите, как и в файле passwd, записи разделяются двоеточиями.Их довольно легко понять.

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

    Отображение имен групп с помощью файла /etc/group

    Как видите, проверка /etc/group дает вам полный, а иногда и слишком подробный список всех групп в вашей системе.

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

    Для этого можно использовать команду вырезания или команду AWK.

      $ кат/и т.д/группа | вырезать -d: -f1  
      $ кат/и т.д/группа | awk -F: 'напечатать $1'  

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

      $ кат/и т.д/группа | grep <группа>  

    Список групп, использующих getent

    Опять же, вы можете выбрать список групп в Linux с помощью команды getent.

      $ getent <база данных> <ключ>  

    Здесь нас интересует "групповая" база.

    Если вы решите не предоставлять ключ, вы получите весь групповой файл.

      $ getent group  

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

      $ получить группу sudo  

    Группы отображения для текущего пользователя

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

      $ группы <имя пользователя>  

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

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

      $ группы судо  

    Результат... root! Потому что команда выполняется от имени root, а root принадлежит только к одной группе, которая является корневой группой.

    Заявка

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

    Вы узнали больше о конкретном файле конфигурации, таком как passwd и group , а также о команде getent для устройств коммутатора службы имен.

    Опять же, если вы заинтересованы в администрировании Linux, у нас есть множество руководств по этому вопросу в нашей категории «Администрирование Linux».

    Щелкните изображение ниже, чтобы проверить их.

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

    [вставить] https://www.youtube.com/watch?v=m8DTjAVQdls[/встроить]

    .

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

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

    Справка


    человек - отобразить справочную страницу для команды «программа»

    информация - как и man, отображать страницу справки для команды «программа».

    Если он не может найти информационную страницу, он ищет справочную страницу и отображает ее.

    • информационная программа, программа pinfo

    --помощь - у каждой программы есть опция --help или -h для отображения небольшой справки

    Логин


    выход из системы - команда выхода из терминала

    выезд - команда для завершения процесса оболочки: tcsh, bash и т. д.Д - (Ctrl-D) отправляет на терминал сообщение EOF (конец файла)

    Указывает на конец ввода данных. В оболочке «bash» это обычно приводит к отключению терминала

    .

    кто - отображает имя пользователя

    идентификатор - отображает текущее имя и группу пользователя и их номера (UID и GID)

    и - команда для повторного входа в качестве другого пользователя (su, для «переключить пользователя»)

    Позволяет в том же терминале временно изменить права на выполнение команд другому пользователю (изменить текущий UID и GID)

    • su имя пользователя — изменить пользователя на пользователя с именем «имя пользователя»
    • su - имя пользователя - изменить пользователя, очистить переменные среды и установить новые значения для HOME, SHELL, USER, LOGNAME, PATH

    палец - список всех пользователей, которые в настоящее время вошли в систему на машине (и их терминалы)
    • палец
    • finger @komputer — пользователи вошли в систему на компьютере с именем «computer;
    • finger имя пользователя - выводит информацию о пользователе 'username' и всех терминалах, на которых он зарегистрирован
    • finger Marek - выводит информацию обо всех пользователях с именем 'marek'

    в - точно так же, как списки пальцев зарегистрированных пользователей и их активных терминалов

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


    компакт-диск - изменяет текущий каталог (из «изменить каталог»)
    • cd имя каталога - изменить текущий каталог на «имя каталога»
    • cd dir1 / dir2 / dir3 - идет в каталог 'dir3', который находится в каталоге 'dir2', который находится в 'dir1'
    • cd - откуда угодно, меняет каталог на домашний
    • продолжение. - Перемещается в каталог на один выше в дереве каталогов, чем текущий
    • cd /home/dir - откуда угодно, идет в директорию начиная с начала дерева: /
    • cd - - переход к предыдущему каталогу

    pwd - распечатать путь к текущему каталогу (из «распечатать рабочий каталог»)

    лс - перечисление каталога
    • ls - перечисляет каталог.(сл.)
    • ls файл1 файл2 файл3 - Список только перечисленных файлов
    • ls * .txt — список всех файлов с именами, заканчивающимися на «.txt»
    • ls catalog1 catalog2 - список перечисленных каталогов
    • ls -l — Подробный список
    • ls -a - также список скрытых файлов (т.е. тех, имя которых начинается с точки)
    • ls -R - рекурсивно перечисляет каталоги (т.е. также отображает содержимое подкаталогов)
    • ls -d - отображать только имена каталогов, как и обычные файлы, т.е. не отображать их содержимое

    кот - записывает все переданные ему файлы в стандартный вывод
    • cat файл - если мы не перенаправим стандартный вывод в другой файл (>, >>) или программу (|), она выведет файл на экран
    • cat файл1 файл2 файл3 - распечатать содержимое всех файлов
    • один за другим

    лотки - записывает все переданные ему файлы в стандартный вывод, но меняет порядок строк
    • tac file1 file2 - печатать оба файла вместе, с последней до первой строки

    эхо - повторяет слова, указанные в аргументе, на стандартном выходе
    • echo costam write if echo "costam write" - написать "costam write" и закончить новой строкой
    • echo -n "costam print" - после записи аргументов не будет печатать новую строку
    • echo $HOME - выводит содержимое переменной среды HOME

    туалет - подсчитывает строки, слова и символы в файле

    , если аргумент не задан, считывается из стандартного ввода

    .
    • cat файл1 файл2 | wc -l - будет считать все строки из объединенных файлов файл1 файл2
    • wc файл - печатать строки слов и символов и имя файла
    • wc -m - только символы (или --chars)
    • wc -l - только строки (или --lines)
    • wc -w - только слова (lib --words)

    меньше - удобный и быстрый просмотр текстовых файлов
    • меньше файла - отображает содержимое файла и разрешает прокрутку страницы (q-вывод)

    Файлы и каталоги


    сенсорный - изменяет время доступа и модификации файла или, если файл не существует, создает его.

    кп - копирует файл
    • cp file1 file2 - создаст ./file2 идентичный file1
    • cp file3 ../katalog/jakis/ — создаст файл ../katalog/jakis/plik3
    • cp pom.* Подкаталог / — будут скопированы все файлы, начинающиеся с 'pom.' в ./подкаталог/
    • cp file5 ~/directory/some/file - создаст файл ~/directory/some/file

    мв - перемещает файл (таким образом, также служит для переименования)
    • mv file1 file2 - переименует файл из./файл1 в файл2
    • mv file3 ../katalog/jakis/ — переместит файл в ../katalog/jakis/plik3
    • mv file4 подкаталог / - переместит файл ./subdirectory/file4
    • mv file5 ~/directory/some/file - переместить и переименовать ~/directory/some/file

    п.м. - удаляет файл
    • РМ файл -
    • rm -r каталог - удалить все в каталоге и всех его подкаталогах (--recursive)
    • rm -f файл - не просит удалить (--force)

    мкдир - создает каталог
    • mkdir my_new_directory
    • mkdir/home/users/ja/my_new_dir

    rmdir - удаляет пустой каталог

    чмод - изменяет права доступа к файлам

    группы пользователей: u - пользователь, g - группа, o - другие, a - все

    права доступа: r - чтение, w - запись, x - выполнение

    • chmod o + r файл - предоставить другим разрешение на чтение файла
    • chmod a-x file - лишить всех права на выполнение файла
    • chmod g=rw file - установить права на чтение и запись для вашей группы
    • chmod -R go + w directory - установить разрешения для всех файлов в каталоге и его подкаталогах (--recursive)

    найти - показывает, где последний файл с данным именем (или частью имени) был замечен на этом компьютере

    найти отчет.текст - найти pdf

    найти - просмотреть каталог для рассматриваемого файла
    • найти. -name report.txt
    • find/home/user-name "rap * xt"

    Перенаправления 3
    > - перенаправление вывода из программы в файл.

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

    • echo "ala ma cat">file.txt - выход из программы echo запишет в файл file.txt
    • ls -l> list.dat - перечислить файлы в файл list.dat

    >> - добавление выхода из программы в конец файла
    • эхо "у алы есть собака" >> файл.txt — добавит «у ала есть собака» в конец файла .txt
    • ls -l> list.dat - перечислить файлы в файл list.dat

    | - перенаправление вывода одной программы на ввод другой
    • файл кота.txt | wc -l — cat выведет на вывод файл file.txt, который мы перенаправим в программу, считающую строки.
    • лс -л | lpr - Программа печати lpr будет получать данные из списка файлов
    • .
    • файл кота.txt | подносы | grep "что-то" | head> cosie.txt — запись файла .txt в программу «tac», которая меняет порядок строк, результат этого перенаправляется в «grep», который будет печатать только строки, содержащие слово «что-то», вывод этого отправлено в программу «голова», которая будет публиковать только первые 10 строк вывода, которые мы перенаправили в файл cosie.txt.

    >! - перенаправление в файл. Работает как >, но продолжается даже после того, как файл уже существует. Работает с "tcsh".
    • echo "у ала есть кот"> file.txt - если файл.txt существует, эта команда может завершиться ошибкой.
    • эхо "а-ля кот">! file.txt - вам нужно будет использовать восклицательный знак>!
    • echo "аля есть кот"> | файл.txt — то же самое, только в «bash»

    - перенаправить файл как стандартный ввод.
    • шахматы - если шахматная программа принимает ходы на стандартный ввод, мы можем записать эти ходы в файл и отдать программе таким образом
    • кошка движется.txt | шахматы - тоже самое можно сделать да

    - вход в следующие строки.
    • шахматы E2-B4
      H5-A1
      C6-F5
      DO_KONCA
      - пройти т.н. документ на месте. Все следующие строки между метками 'TO_END' будут поданы на стандартный ввод программы 'chess'.
    • эхо "E2-B4
      H5-A1
      C6-F5" | шахматы
      - тоже самое можно сделать да
    • echo -e "E2-B4 \ nH5-A1 \ nC6-F5" | шахматы - тоже самое можно сделать да

    2> - перенаправить стандартный вывод ошибок в файл.В дополнение к стандартному выводу и вводу каждая программа также имеет стандартный вывод ошибок. Мы также можем перенаправить их, например, в другое место, чем обычный выход. Работает в «bash», а не в «tcsh».
    • find -name "file. *"> Found.log 2> errors.log - файлы, найденные с помощью 'find', попадут в found.log, сообщения об ошибках не будут скрывать результат и будут записаны в другой файл - ошибки.лог
    • cp -r data/backup/2> ошибка.log - если возникнут ошибки при копировании всего каталога, все сообщения будут записываться в error.log
    • (ls>file.log)>&file.err - в 'tcsh' нельзя перенаправить только вывод ошибок, отсюда и необходимость такой конструкции.

    &> или> & - перенаправление обоих выходов в файл.
    • лс> & файл.log — стандартный вывод и стандартная ошибка для ошибок перенаправляются в файл.log
    • ls> logfile 2> & 1 — то же самое, но работает только в «bash». Перенаправьте вывод, затем скопируйте его в вывод ошибок.
    • ls &> file.log — то же, что и> &, но в обозначении, более подходящем для «bash».

    человек ударить
    • Рекомендую для получения дополнительной информации

    человек ткш
    • Рекомендую для получения дополнительной информации

    Процессы


    пс - перечислить процессы, запущенные на компьютере
    • ps - Отображает запущенные пользователем процессы
    • ps a - также отображать процессы других пользователей
    • ps -l, ps -f, ps -F - дополнительная информация о процессах (от: long, full, extra full)
    • ps f - отображает дерево зависимостей процесса (из: леса)
    • 90 024 пс --help -: P

    бг - перезапускает приостановленную (Ctrl-Z) задачу, но в фоновом режиме, как если бы она была запущена с помощью &
    • bg - Запускает последнюю остановленную задачу
    • bg NUMBER - запускает задание с заданным номером в списке остановленных заданий (
    • )

    фг - перезапускает остановленную (Ctrl-Z) задачу на переднем плане
    • fg - Запускает последнее остановленное задание
    • фг НОМЕР - запускает задание с заданным номером в списке остановленных заданий (
    • )

    рабочих мест - отображает список остановленных заданий

    убить - убивает данный процесс

    PID - это номер идентификатора процесса, его можно прочитать, например.с помощью команды ps

    • kill PID - отправляет сигнал процессу с номером PID для прерывания процесса
    • kill -KILL PID - убить процесс без запроса

    и - модификатор, позволяющий сразу запустить фоновый процесс.
    • xcalc & - запускает программу xcalc в фоновом режиме, благодаря чему у нас есть бесплатная консоль

    топ - интерактивный инструмент мониторинга процесса

    Сортирует процессы по их текущему использованию ЦП, использованию памяти и т. д.

    Редакторы


    вим - расширенный текстовый редактор с текстовым режимом

    Vi iMproved - новая версия известного редактора Vi. Он имеет

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

    гвим - vim в графическом режиме

    емакс - расширенный текстовый редактор в графическом режиме

    Emacs, как и Vim, является универсальным многоязычным редактором с богатыми функциями.


    уемакс - текстовый редактор в текстовом режиме

    Micro Emacs — это текстовая версия Emacs

    .

    Джо - простой текстовый редактор

    Собственный редактор Джо.Подходит для написания простых документов


    mcedit - текстовый редактор в текстовом режиме

    mcedit — встроенный редактор для Midnight Commander.

    Имеет, среди прочего подсветка синтаксиса.

    Сеть


    сосна - программа электронной почты

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


    сш - программа для удаленного входа по зашифрованному соединению

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

    • ssh anatres - регистрирует меня на 'antares'a
    • ssh ja @ anatres — регистрирует меня как пользователя 'ja' на 'antares'a
    • ssh ja @ antares command - войдет в систему только для выполнения команды
    • на antares

    SCP - программа для копирования файлов по зашифрованному SSH соединению

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

    'scp' для подключения использует программу 'ssh'

    • scp файл ja@antares: ~/moje_fiki/ - скопирует файл в мою директорию на antaresie ~/moje_files/
    • scp ja@antares: /var/log/file. - скопирует данный файл из antares
    • в текущий каталог

    логин - простой протокол удаленного входа в систему
    • rlogin antares - регистрирует меня на 'antares'a

    пинг - диагностическая программа, которая проверяет, есть ли сетевое подключение к данному компьютеру.
    • ping antares.astrouw.edu.pl - проверяем отвечает ли антарес (и как быстро)

    диски
    дф - перечисляет размеры и количество доступного места на смонтированных дисках (в килобайтах и ​​в процентах)
    • дф
    • df /dev/sda1 — ограничить результаты только одним разделом
    • df -h - размеры дисплея в удобных для пользователя единицах (удобочитаемых)
    • df -m - размеры в мегабайтах

    дю - количество размеров каталогов и файлов, содержащихся в данном каталоге
    • дю - размер текущего каталога
    • дю каталог - считать размер данного каталога
    • du -s - печатать только сумму, а не размеры каждого подкаталога
    • du -sm - укажите только сумму для каждого каталога и введите размер в мегабайтах
    • du -sm каталог * | sort -n - сортировать результаты от наименьшего к наибольшему из заданных каталогов

    Окружающая среда


    который - перечисляет, где находится программный файл с заданным именем
    • which ls — найти файл, который будет запущен после вызова команды «ls»

    окр. - выводит текущие значения всех переменных окружения

    или - устанавливает и перечисляет определения команд быстрого доступа («псевдонимы»), которые в настоящее время установлены в среде.
    • псевдоним - печатать псевдонимы
    • псевдоним ls 'ls --color = auto' - определяет новый псевдоним 'ls' с заданным содержимым

    Системные устройства


    /dev/ноль - бездонный колодец.Устройство, на которое мы можем писать по желанию, и все, что мы печатаем, теряется.
    • find -name "file.*" 2>/dev/null - если не хотите видеть среди результатов поиска сообщения об ошибках
    • latex file.tex> /dev/null - программа сделает все активности, но не будет захламлять консоль логами
    • count>/dev/null 2>/dev/null& — если мы хотим запустить программу в фоновом режиме, а затем выйти из системы (закрыть консоль), мы должны перенаправить вывод программы, чтобы она не пыталась записать на устройство, которое больше не существует.Устройство «нуль» всегда там.

    /dev/ноль - нулевой магазин Это устройство для чтения, которое никогда не заканчивается. Из него можно прочитать любое количество байт, и все они будут нулевыми.
    • dd if=/dev/zero of=zeros.txt count=1000 - считывает тысячу нулей в файл 'zeros.txt'.
    • cat /dev/zero - советую не пробовать
    • head -c 10 /dev/zero > ноль.txt — вывести первые 10 байт из '/dev/zero' в файл 'zero.txt'. В результате получается файл с десятью нулями.

    /разработчик/случайный - набор случайных чисел. Это считывающее устройство, которое дает вам действительно случайные данные. При этом используется системный бак энтропии, который пополняется благодаря различным проявлениям активности пользователя. Этот набор может закончиться, поэтому не читайте сразу несколько чисел.
    • from -t x1 -N 100 /dev/random - записать на экран первые 100 случайных байт из /dev/random (в шестнадцатеричной системе)

    /dev/urandom - набор псевдослучайных чисел. Это считывающее устройство, которое сообщает псевдослучайные числа. В его распоряжении любое их количество.
    • from -t d1 -N 100 /dev/urandom - записать на экран первые 100 байт из /dev/urandom (в десятичной системе)

    /dev/стандартный - стандартный ввод текущего процесса.Любой процесс, который попытается прочитать данные с этого устройства, получит содержимое собственного ввода.
    • эхо "есть кот" | cat ala.txt/dev/stdin — программа cat объединит содержимое файла ala.txt с тем, что она получила на стандартном вводе

    / dev / стандартный вывод - стандартный вывод текущей программы. Когда процесс что-то записывает в /dev/stdout, это появится в его стандартном выводе.
    • a2ps --output file.ps file.txt - программа a2ps создаст документ PostScript в файле file.ps
    • a2ps --output /dev/stdout file.txt - программа a2ps выведет документ на экран (его стандартный вывод)

    /dev/stderr - стандартный вывод ошибок в текущей программе. Когда процесс что-то записывает в /dev/stderr, это отображается в его стандартном выводе ошибок.

    .

    Подружитесь с Linux. Управление учетными записями пользователей.

    Для начала начнем с обсуждения информации, содержащейся в файлах: /etc/shadow и /etc/passwd, потому что эти два файла содержат информацию о созданных учетных записях пользователей и описанные инструменты для этих данных будут часто использоваться.

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

    Внимательный читатель наверняка заметит, что каждая строка в файле /etc/passwd представляет одного пользователя, а более любознательный - что там семь полей, разделенных двоеточиями (:).Каждое из полей хранит разную информацию о пользователе. Определение поля включает:

    1 - имя пользователя ,

    2 - пароль пользователя - пароль в Linux явно не сохраняется и находится в файле /etc/shadow./shadow При просмотре файла /etc/passwd мы также можем встретить знак *, что означает что вы не можете войти в систему, а пустое поле (два двоеточия друг за другом) означает, что пароль не определен (логин без пароля).

    3 - ID пользователя (user ID - т.е. UID) - число, описывающее данного пользователя. Допускается дублирование номера UID в системе, но это может привести к непредвиденным ошибкам, поэтому предполагается уникальность UID.

    4 - первичный идентификатор группы (идентификатор группы - т.е. GID) - идентификатор определяет принадлежность к группе с заданным идентификатором. Ассоциация имени группы с id находится в файле /etc/group,

    5 - Поле GECOS - реальное имя пользователя.Это поле также может содержать другую информацию, например, номер телефона. Эта информация разделена запятой,

    6 - Расположение домашнего каталога пользователя ,

    7 - пользовательская оболочка .

    При анализе дампа, показывающего образец файла /etc/passwd , можно выделить ряд учетных записей, не закрепленных за конкретными лицами, эти учетные записи относятся к т.н. 90 017 специальных пользователей 90 018.Эти учетные записи принадлежат службам и пользователям, которым требуются специальные разрешения. Например, суперпользователь (корень) UID и GID всегда установлены на 0, а пользователь никто — это учетная запись, которой было отказано в доступе на запись. В литературе можно встретить термин, обозначающий такие учетные записи, как псевдопользователей . Как правило, используя такие учетные записи, вы не можете войти в систему, но сама система может использовать эти учетные записи для запуска процессов.

    В файле /etc/shadow по умолчанию хранится информация об аутентификации пользователя, т.е. информация о пароле и его действительности. Пример файла /etc/shadow показан на рисунке ниже.

    Отдельные поля файла и их описание:

    1 - имя пользователя - это имя совпадает с именем в файле /etc/passwd Имя связывает ввод пароля с полем пользователя.

    2 - зашифрованный пароль - MD5, аббревиатура

    3 - дата последней смены пароля - время последней смены пароля, данное поле заполняется командой passwd .

    4 - минимальное количество дней между изменениями пароля - указывает количество дней, которое должно пройти между изменениями пароля

    5 - Максимальное количество дней между изменениями пароля - Указывает максимально допустимое количество дней между изменениями пароля.Фактическое максимальное количество дней — это сумма значения этого поля и значения седьмого поля (так называемый льготный период).

    6 - Количество дней для сообщения об истечении срока действия пароля ,

    7 - количество дней, определенное с момента истечения срока действия пароля , , после которого учетная запись будет отключена,

    8 - дата истечения срока действия учетной записи - день (с 1 января 1970 г.) истечения срока действия учетной записи пользователя. По истечении этой даты пользователь не может войти в систему.

    9 - зарезервированное поле - для будущего использования

    Чтобы создать учетную запись для нового пользователя, мы можем использовать команду: useradd Общий синтаксис команды следующий: useradd имя пользователя Ниже приведен пример создания учетной записи для пользователя: jankow

    1 - командой: useradd jankow создается новая учетная запись,

    2 - смена пользователя,

    3 - проверка имени текущего пользователя командой: whoami .

    После создания новой учетной записи рекомендуется назначить для нее пароль. Системный администратор оставил пользователю jankow для смены пароля. Итак, пользователь пытается сделать это с помощью команды: passwd . К сожалению, после выдачи команды мы сталкиваемся с неожиданной проблемой - система просит нас ввести текущий пароль. Какой пароль? Ведь был создан только аккаунт, а пароль не определен.

    Создание пользователя таким образом отключает учетную запись, вставляя x в поле пароля (файл /etc/passwd ).

    Как вы уже знаете, символ x для идентификации пароля, он ссылается на файл /etc/shadow но поле пароля содержит символ ! , наличие которого эффективно блокирует смену пароля.

    Для того чтобы пользователь jankow сам определял пароль, в файле /etc/passwd в строке соответствующей данному пользователю удалите знак х в поле пароля.Конечно, это изменение должно быть сделано пользователем root .

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

    Гораздо лучшим решением является создание учетной записи и назначение пароля только что созданной учетной записи. Ниже приведен пример создания учетной записи для пользователя tadnow (пункт 1) и назначения пароля (пункт 2).Все операции выполнял пользователь root .

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

    Ниже приведен пример создания учетной записи пользователя sonkie , но дополнительно с помощью параметров -e была определена валидность учетной записи, т.е.Дата, до которой учетная запись активна.

    Выполнение команды useradd с параметром -D отобразит информацию о настройках по умолчанию. Эти настройки определены в файле: /etc/default/useradd Изменение и определение этих параметров позволяет нам создавать учетные записи с предопределенными параметрами.

    • ГРУППА — имя или идентификатор группы по умолчанию,
    • HOME — Каталог, указывающий каталог для хранения домашних каталогов пользователей,
    • НЕАКТИВНО - параметр указывает количество дней с момента истечения срока действия пароля, после которого учетная запись будет заблокирована.Значение: -1 - опция отключена, значение: 0 - истечение срока действия пароля автоматически блокирует учетную запись, значение: положительное (число) - количество дней.
    • EXPIRE - дата деактивации учетной записи,
    • SHELL - имя системной оболочки пользователя,
    • SKEL - расположение каталога, из которого файлы и папки будут скопированы в домашний каталог вновь созданного пользователя.

    Чтобы изменить параметры по умолчанию, мы используем команду, общий синтаксис которой выглядит следующим образом: useradd -D <параметры> Так, например.если вы хотите установить срок действия аккаунта на 2016-01-25 (см. картинку выше), используйте команду с опцией: -e после чего указываем дату в формате ГГГГ-ММ-ДД - useradd -D -e 25.01.2016

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

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

    -s - спецификация оболочки пользователя,

    -d - указание расположения домашнего каталога пользователя,

    -u <значение> - определить UID,

    -g <имя_группы> - определение основной группы пользователей,

    -G <имя_группы>, <имя_группы> - определение групп, членом которых станет пользователь,

    -m - определить настройки учетной записи, скопировав файлы из шаблона (каталог: /etc/skel>, если файлы конфигурации находятся в другом каталоге, используйте ключ -k .

    Другой инструмент, который мы можем использовать для создания учетной записи пользователя, — это adduser . Выполнение операции по созданию учетной записи так же просто, как ввод команды: adduser и после ответов на вопросы создается учетная запись пользователя. На рисунке ниже показан пример использования инструмента adduser для создания учетной записи пользователя tomwal .

    Для того, чтобы определить пароль для данного пользователя, как вы уже знаете, Reader должен использовать команду passwd .Но инструмент, кроме смены/установки пароля, позволяет сделать еще несколько шагов. Общий синтаксис команды следующий: passwd Без определения каких-либо параметров, вводом самой команды: passwd пароль пользователя изменяется в том контексте, в котором была введена команда.

    Чтобы узнать об определенных параметрах, связанных с нашим паролем, мы можем использовать команду passwd с установленным флагом -S - passwd -S После подачи команды мы получаем информацию о:

    • логин,
    • статус пароля - L - пароль заблокирован, NP - пароль не установлен, P - пароль установлен,
    • дата последней смены пароля,
    • минимальное время жизни пароля,
    • максимальное время жизни пароля
    • время предупреждения об изменении пароля и период времени неактивного пароля.Это время выражается в днях.
    • количество дней, по истечении которых учетная запись блокируется.

    Использование флага -e в сочетании с именем учетной записи приведет к принудительной смене пароля.

    Ниже приведен пример принудительной смены пароля для учетной записи beatry (пункт 1). После смены аккаунта нам сообщают о необходимости немедленной смены пароля (пункт 2).Пользователь использует инструмент passwd , чтобы попытаться изменить его (пункт 3). С первой попытки пароль поменять нельзя, так как пароль слишком простой - password:qwerty (пункт 4). Второй подход тоже не работает - причина - заданный пароль идентичен предыдущему (пункт 5). Успешна только третья попытка (до трех раз удачно - пункт 6).

    Определение минимального срока действия пароля производится с помощью ключа -n , а максимальное значение можно определить с помощью флага -x .Использование любого из переключателей заставляет нас определить значение дней настроенной опции.

    Время предупреждения о необходимости смены пароля можно определить с помощью ключа -w .

    И пароль будет удален с помощью флага -d .

    Команда, которая позволит нам изменить параметры созданных учетных записей, — usermod .

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

    После смены учетной записи пользователя на beatry получаем сообщение об истечении срока действия учетной записи (пункт 1). Чтобы учетная запись снова стала активной, необходимо установить новую дату истечения срока действия учетной записи. Новая дата устанавливается с помощью команды usermod и флага -e (пункт 2 - срок годности установлен на 3 марта 2016 года).После смены аккаунта еще раз на beatry (пункт 3) нам сообщают о приближающемся сроке действия пароля, поэтому с помощью уже рассмотренной команды: passwd устанавливаем новый пароль.

    Команда: usermod имеет переключатель, который можно использовать для блокировки доступа к учетной записи (вход в систему невозможен). Чтобы сделать данную учетную запись неактивной, используем флаг: -L (после активации попытка входа завершается сообщением о неверном пароле).Ниже пример отключения аккаунта alebin . Чтобы учетная запись снова заработала, используйте опцию: -U .

    Учетная запись удаляется командой: userdel . На скриншоте ниже показан пример удаления учетной записи пользователя tomwal .

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

    Как правило, пользователи должны хранить свои файлы в своем домашнем каталоге, но часто файлы сохраняются в разных местах. Для того, чтобы тщательно очистить систему после пользователя, стоит найти и удалить все файлы, принадлежащие удаленному пользователю. Чтобы найти такие файлы, используйте команду: find / -user <имя пользователя>

    Сценарий, который позволит нам проверить целостность файлов /etc/passwd и /etc/shadow : pwck Если вы дадите команду, файлы будут проверены на синтаксис и включенные ссылки.Для отображения только информации (режим только для чтения) используйте флаг -r . Если выдается только команда pwck , то при обнаружении проблемы будет выведено сообщение с запросом на подтверждение операции.

    Команда: logname отвечает за отображение имени для входа данного пользователя.

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

    Полученные результаты могут отличаться от результатов, полученных с помощью команды: logname , поскольку с помощью команды: su вы можете изменить контекст команд (читай — выполнить команду с учетными данными другого пользователя).Разница между этими командами показана ниже.

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

    Кроме того, обе команды полезны при создании скриптов.

    Команда: who позволяет нам узнать пользователей, которые в данный момент вошли в систему.

    По умолчанию команда извлекает данные пользователя из файла /var/run/utmp В определении вызова команды можно изменить расположение файла данных по умолчанию. И так указав: /var/log/wtmp мы получим информацию о предыдущих входах в систему, а при определении /var/log/btmp мы должны получить данные о неудачных входах (при условии, что система настроена на сбор такой информации ).Ниже приведен пример, показывающий информацию о предыдущих входах в систему.

    С помощью команды: who мы можем использовать дополнительные переключатели:

    -a полная информация,

    -H - написать заголовок,

    -q - отображать только имена и количество пользователей,

    --lookup - разрешение имени компьютера (DNS), с которого производился вход, флаг применяется к пользователям, вошедшим в систему удаленно,

    -T - проверяет возможность отправки сообщения (напр.когда пользователь использует терминал). Символ: + означает, что связь возможна, символ: - не возможно отправить сообщение, а символ: ? означает невозможность определения.

    Ниже приведен пример использования флага -T Проанализировав полученные результаты, можно сделать вывод о возможности отправки пользователю сообщения: alebin Итак, попробуем использовать эту информацию. Но еще одно замечание, для того, чтобы общение было успешным, следует ввести команду: месг y Выдача команды разрешает данный вид связи (команда: месг н - запрещена, статус будет известен после выдачи команды команда: сообщение ).Д.

    Сообщение отправлено всем пользователям, которые могут его получить (прочитать с помощью терминала) В примере информация получена двумя пользователями: alebin и tomwal

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

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

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

    -s - запись данных в сокращенной форме,

    -l - запись данных в расширенной форме.

    Команда, связанная с finger , называется chfn . Эта команда позволяет нам изменить некоторую информацию, относящуюся к пользователю - настоящее имя и фамилию, номера телефонов или место работы. Изменяем информацию командой: chfn

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

    С помощью команды: who мы могли узнать историю предыдущих входов в систему.Эта информация также получается благодаря команде: last Данные располагаются в хронологическом порядке, от текущего логина до более старого логина.

    Команда last имеет несколько больше возможностей, чем команда , которую представила ранее. Доступны следующие переключатели:

    -f <имя_файла> - указание источника информации отличного от стандартного файла var /run/utemp ,

    -i - имена компьютеров, с которых производился вход, заменены IP-адресами,

    -R - Без имен компьютеров,

    -n <значение> - вывести данные о журналах, охватывающих последние n строк (вы можете использовать синтаксис, например, последний -3 ),

    - отображение истории журнала для конкретного пользователя,

    Чтобы узнать историю входов в систему, относящуюся к данному периоду, вы можете использовать ключ -t После определения флага укажите интересующий период. Дата определяется в формате: ГГГГММДДЧЧММСС (в случае пропуска любая информация заполняется нулями).

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

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

    Чтобы найти неудачный вход в определенный период, используйте переключатель -t . Использование флага -a отобразит всю информацию.

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

    Чтобы включить блокировку учетной записи после n неправильно введенного пароля, отредактируйте файл: /etc/pam.d /common-auth (в других системах Linux имя файла может быть: /etc/pam.d/system-auth ).

    После открытия файла добавьте строку:

    требуется аутентификация pam_tally.so onerr = fail deny = <количество_разрешенных_выборок> unlock_time =

    где:

    • deny= - количество попыток с последующей блокировкой,
    • unlock_time=<время_разблокировки> - время автоматической разблокировки аккаунта, по истечении этого времени можно войти.

    Информация о предпринятых попытках входа хранится в файле: /var/log/faillog

    После определения всех настроек можем попробовать авторизоваться. В нашем тесте пользователь jankow трижды вводит неправильный пароль.

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

    Чтобы проверить количество неудачных попыток входа в систему, введите команду: pam_tally --user <имя пользователя> , а чтобы сбросить пороговое значение, введите команду: pam_tally --user <имя пользователя> --reset

    Еще одна команда, позволяющая узнать немного больше информации о пользователе, это команда: id Итак, давайте посмотрим на результаты, полученные после выдачи команды.Ввод команды позволяет нам узнать номер UID (идентификатор пользователя) и GID (первичный идентификатор группы). Эти номера присваиваются учетной записи пользователя в процессе создания. На скриншоте ниже идентификаторы аккаунта root и уязвимости .

    При просмотре результатов мы обнаруживаем, что пользователю root присвоено значение 0 для идентификаторов UID и GID, а пользователю пропущено значение 1000 (в Ubuntu нумерация учетных записей пользователей начинается с 1000 в других дистрибутивов это значение может быть другим, например .в Fedora нумерация начинается с 500). Добавление другого пользователя обычно увеличивает значение идентификаторов UID и GID на единицу. Ниже приведен пример определения новой учетной записи tadnow Как мы видим, значения UID и GID равны 1001 (эти значения мы узнаем в процессе создания учетной записи и благодаря команде id ).

    Для нашего удобства особенно важно, когда мы управляем большой группой пользователей (было бы трудно запомнить эти номера) значения UID и GID сопоставляются с именем пользователя или именем группы.Информация о сопоставлении для пользователя берется из уже описанного файла /etc/passwd , а для групп — из файла /etc/group . Ниже на скриншоте содержимое файла /etc/group

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

    В Linux для управления группами можно использовать одну из нескольких команд, наиболее часто используемая из них: groupadd (аналогично useradd ), отвечающая за создание группы. Синтаксис команды: groupadd <имя_группы>

    Ниже приведен пример создания двух групп: маркетинг и финансы Как видите, факт создания групп отражен в файле: /etc/group

    Чтобы самостоятельно определить идентификатор группы GID, для этого следует использовать ключ -g .

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

    Членство в группе можно изменить командой: usermod с параметром -g или -G Добавление параметра -g и определение имени группы после того, как оно заменит исходную группу (это случай в Ubuntu в других дистрибутивах пользователь будет добавлен в группу, определенную в команде).Ниже пользователь tadnow меняет членство с группы по умолчанию tadnow на группу финансы . Определение группы может быть выполнено с использованием идентификатора GID (использование идентификатора в определении приводит к добавлению пользователя в данную группу без его замены) и, что важно, определенные группы должны существовать.

    С другой стороны, выбор флага -G добавит пользователя в указанные группы. Ниже приведен пример добавления пользователя tadnow в группу финансы и маркетинг .После выполнения команды пользователь tadnow по-прежнему является членом группы по умолчанию tadnow .

    Для изменения параметров группы используется следующая команда: groupmod С помощью этой команды можно изменить имя группы или ее GID. Ниже приведен пример изменения названия группы финансы на бизнес . Как видите, после внесения изменений членство пользователя tadnow меняется автоматически.Чтобы изменить имя, используйте ключ -n в команде groupmod , а при изменении GID используйте флаг -g .

    Чтобы удалить группу, используйте команду: groupdel Синтаксис команды следующий: groupdel <имя_группы>

    Перед удалением группы, как это было в случае с учетной записью пользователя, стоит ознакомиться с файлами, которые относятся к данной группе, для отображения файлов, принадлежащих данной группе, используйте команду: найти / - group <имя_группы> -print Ниже приведен пример использования команд для поиска файлов, принадлежащих группе уязвимости .

    Аналогичный рабочий скрипт уже представленному pwck , но на этот раз проверка целостности файла /etc/group это grpck . Вызов скрипта выполнит проверку синтаксиса информации, содержащейся в файле.

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


    НОМЕР:

    http://www.tecmint.com/add-users-in-linux/

    http://www.computerhope.com/unix/useradd.htm

    http://www.cyberciti.biz/tips/lock-unlock-set-number-of-login-attempts.html

    http://www.serverschool.com/server-configuration/how-to-lock-user-accounts-after-login-failure/

    http://ubuntuforums.org/showthread.php?t=1024263

    .

    Основы Linux — Дерево каталогов

    Статья открывает серию руководств по основам запуска и управления системами GNU/Linux. Сегодня мы рассмотрим структуру каталогов. Мы попытаемся ответить на вопрос, почему важна стандартизация, и узнаем о специфичных для Enterprise Linux каталогах, «расширяющих» стандарт.

    В 1994 году FSSTND ( FileSystem STaNdarD ) был выпущен в качестве стандарта для структуры каталогов в Linux.На его основе был создан расширенный стандарт для более широкого круга Unix-систем — FHS ( Filesystem Hierarchy Standard ).

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

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

    Твердое основание

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

    общий не используется совместно
    статический двоичных файлов файлы конфигурации
    переменная Временные файлы электронной почты файлов блокировки ( блокировка )

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

    часто делает доступными только для чтения. пользовательских исполняемых файлов.
    Каталог Имя источника на английском языке Описание
    / корень Корневой каталог в системах Unix называется root ( root ). Вся структура каталогов находится в этом каталоге.
    / багажник загрузочный процесс Файлы загрузчика
    / ящик бин Овен Базовые исполняемые файлы доступны всем пользователям
    / устройство разработчик айс Файлы устройств
    / и т. д. и т. д. эфир Файлы конфигурации.Раньше здесь были разные файлы, не относящиеся к другим категориям
    / дом домашний справочник Домашние каталоги пользователей
    / библиотека библиотека редкость Программные библиотеки и модули ядра. Новая версия стандарта также определяет возможность добавления каталогов для других архитектур, например, lib64 для x86_64
    / шт. м или нт точка Временная точка монтирования
    / носитель носитель Точки монтирования для внешней памяти
    / опция / опция иональная Дополнительное программное обеспечение
    / проц / процесс ESS Виртуальная файловая система, информирующая о состоянии системы
    / корень / Домашний каталог суперпользователя root
    / пробег запустить Информация о работе системы с момента ее последнего запуска
    / сбин система бин Овен Исполняемые файлы для управления системой
    /срв/ с е рв изд Редко используемый каталог, содержащий данные, которые система
    / тмп t e м3 навесной Временные файлы
    / USR США e R Вторичная иерархия.В основном здесь находятся
    / уср / бен / бин арил Как в первичной иерархии, но не требуется для запуска или ремонта системы
    /USR/включая включает Стандартные заголовочные файлы
    / usr / библиотека библиотека редкая Как в первичной иерархии, но не требуется для запуска или ремонта системы
    / usr / местный / местный дата Третичная локальная иерархия данных
    / usr / акция / доля д Данные совместно используются архитектурами
    / уср / сбин / с система корзина Овен Как в первичной иерархии, но не требуется для запуска или ремонта системы
    / переменная переменная возможная Часто изменяемые файлы, напр.журналы, базы данных
    /вар/кэш/ кэш Файлы кэша программы
    / вар / замок / замок Используемые файлы блокировки ресурсов
    /вар/лог/ бревно джин Журналы приложений
    /вар/почта/ почта ящики Почтовые ящики

    Дополнительную информацию о стандарте можно найти в документации man 7 выше.Полный текст его текущей версии (3.0) можно найти здесь.

    Три слова о

    временных каталогах

    Стандарт определяет два места для временных файлов: /tmp и /var/tmp. Основное отличие заключается в «долговечности» содержащихся в них файлов. Предполагается, что файлы, помещенные в /tmp, не переживут перезагрузку. На самом деле они могут «жить» еще меньше, а в некоторых реализациях удаляются, как только заканчивает работу использующий их процесс.Все чаще / tmp также монтируется как tmpfs. Содержимое каталога /var/tmp сохраняется между перезагрузками системы. Однако не стоит относиться к нему как к месту для файлов, которые должны «жить» вечно, так как некоторые системы чистят эти каталоги гораздо реже.

    Второе отличие — доступность при инициализации системы. Каталог /tmp доступен очень рано на этапе запуска, но мы не можем предполагать, что это касается /var/tmp.

    Дерево каталогов в Enterprise Linux

    В системах корпоративного класса приняты расширения, не определенные непосредственно в стандарте.Программное обеспечение в этих системах управляется программами rpm и yum. Оба имеют специальные каталоги, в которых хранятся различные файлы. Это каталоги /var/lib/rpm и /var/cache/yum.

    Вторым каталогом, характерным для Enterprise Linux, является /etc/sysconfig, где хранится конфигурация некоторых системных компонентов.

    Немного практики

    Два основных инструмента tree и ls используются для отображения дерева каталогов в командной строке. л и с т ). Первый рисует красивую структуру каталогов в виде «дерева»:

    90 380$ дерево -Л 1 -д/ / ├── бин -> usr / бин ├── ботинок ├── разработчик ├── и т. д. ├── домой ├── lib -> usr/lib ├── lib64 -> usr/lib64 ├── СМИ ├── мнт ├── опцион ├── процентов ├── корень ├── бежать ├── sbin -> usr / sbin ├── срв ├── сис ├── тмп ├── уср └── вар 19 каталогов

    Второй отображает содержимое каталога:

    90 380 $ лс-л/ всего 20276 lwxrwxrwx.1 root root 7 сен 30 10:23 бин -> usr /bin/ др-хр-хр-х. 5 корень корень 4096 6 фев 08:45 загрузка / -rw -------. 1 корень root 20729856 17 окт 15:21 core.12270 drwxr-xr-x. 23 корень корень 3880 11 фев 08:47 разработчик / drwxr-xr-x. 160 корень корень 12288 11 фев 08:47 и т.д / drwxr-xr-x. 3 корень корень 17 сен 30 10:51 домой / lwxrwxrwx. 1 root root 7 сен 30 10:23 lib -> usr /lib/ lwxrwxrwx. 1 корень корень 9 сен 30 10:23 lib64 -> usr /lib64/ drwxr-xr-x.3 корень корень 24 дек 15 20:52 СМИ / drwxr-xr-x. 2 корень корень 6 12 апр 2018 мнт / drwxr-xr-x. 5 корень корень 46 дек 17 16:49 опт / др-хр-хр-х. 325 корень корень 0 фев 11 08:46 процентов / др-хр-х ---. 10 корень корень 4096 6 фев 15:07 корень / drwxr-xr-x. 46 корень корень 1380 11 фев 10:08 прогон / lwxrwxrwx. 1 корень корень 8 сен 30 10:23 sbin -> usr /sbin/ drwxr-xr-x. 2 корень корень 6 12 апр 2018 срв/ др-хр-хр-х. 13 корень корень 0 фев 11 08:47 сис / drwxrwxrwt.25 корень корень 4096 11 фев 11:03 tmp / drwxr-xr-x. 13 корень корень 155 сен 30 10:23 usr / drwxr-xr-x. 21 корень корень 4096 6 фев 15:11 var /

    Подробная информация об операции доступна в руководстве пользователя man 1 tree , man 1 ls .

    Чтобы узнать полный путь к каталогу, в котором мы сейчас находимся, мы найдем pwd ( p rint w orking d irectory ):

    90 380 долларов США / главная / cmd

    Мы будем использовать cd для навигации по дереву каталогов. c hange d irectory ) или более продвинутая смесь popd , pushd и dirs . Более подробная информация по этой теме доступна в другой статье, Pushd i popd, история каталогов, посещенных в нашем блоге.

    Резюме

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

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

    В то же время я рекомендую вам ознакомиться с нашим базовым курсом обучения системам Enterprise Linux.

    .90 000 Linux World — популярность Linux в сети и 90 001 доля рынка

    Люди, знакомые с ИТ-отраслью, прекрасно знают, что Linux доминирует на серверах, а Windows чаще всего встречается на настольных компьютерах. Но как представлена ​​статистика? В каких областях Linux лидирует, а в каких приходится учитывать конкуренцию? Предлагаем вам ознакомиться с отчетом.

    Благодаря своим свойствам операционные системы Linux естественным образом нашли применение в серверных средах.Как на производстве, где требуется абсолютная безопасность и контроль над системой, так и на других этапах создания и развития ИТ-решений. Они являются основой важнейших инфраструктур предприятий, банков, телекоммуникаций и бирж. Linux также господствует в современных автомобилях, RTV и бытовой технике. Он также используется в науке. Центры исследований и разработок и космические агентства (NASA, ESA) используют системы на основе ядра, разработанного Линусом Торвальдсом.Мы не будем много писать об этом, потому что несколько месяцев назад мы разместили отдельную статью в нашем блоге о том, в каких отраслях используется Linux.

    Все суперкомпьютеры

    Linux имеет полную монополию среди самых мощных компьютеров в мире. С ноября 2017 года на сайте top500.org 1 , на котором собраны 500 самых быстрых суперкомпьютеров мира, из фильтра «Семейство ОС» ​​можно выбрать только операционную систему Linux. Это означает, что с тех пор абсолютно все компьютеры из списка TOP500 работают под управлением Linux.

    Источник: https://www.top500.org/statistics/sublist/

    Linux также является самой популярной операционной системой в Интернете. По данным W3Techs.com, его доля на веб-серверах составляет 38,3% всех известных им веб-сайтов (данные с 10 млн страниц) и 56,9% в случае сайтов, использующих только Unix-системы. Только на Unix приходится 67,4% рынка всех проанализированных веб-сайтов. 2

    Еще 2% линукса на десктопах, но...

    Что касается доли Linux на десктопах в мире, то она уже много лет колеблется в районе 2%. Самый большой скачок наблюдался в сентябре 2017 года. Тогда Linux достиг почти 3% рынка. С другой стороны, в Польше доля Linux на десктопах в мае прошлого года составляла почти 5% 3. По данным distrowatch.com, Manjaro Linux является наиболее часто устанавливаемым дистрибутивом. Это более удобная версия Arch Linux, которая работает на KDE, XFCE и GNOME. Linux Mint на базе Ubuntu занимает второе место.Благодаря использованию его создателями проприетарного ПО, пользователи в установочной версии получают множество аудио- и видеокодеков. На последнем месте пьедестала стоит упомянутая система Ubuntu на базе Debian. Его преимуществом является большое сообщество и периодически выпускаемые Canonical новые версии. Сразу за трибуной стоит Debian, внедряемый добровольцами со всего мира, которые общаются через списки рассылки. Проект Debian имеет разветвленную внутреннюю структуру.Он имеет устав и официальные документы, определяющие правила процедуры.

    100% Linux на телевизорах

    Большинство выпускаемых сегодня телевизоров имеют функцию Smart TV, которая позволяет как принимать обычное телевидение, так и выходить в интернет. Следовательно, телевизоры должны полагаться на операционные системы для работы. Linux также безраздельно властвует в этой отрасли. По данным netmarketshare.com, его доля на рынке телевизоров увеличилась на 25 процентных пунктов за четыре месяца с сентября 2017 года по начало 2018 года, с 57 до 82%.В настоящее время она составляет около 70%. Интересно, что оставшиеся 30% рынка принадлежат Android, операционной системе, основанной на ядре Linux. Таким образом, можно сказать, что индустрия телевидения была монополизирована Linux.

    Источник: https://bit.ly/2J4aQ3Z [netmarketshare.com]

    Аналогичная ситуация и в индустрии смартфонов. Хотя сам линукс здесь не играет особо значимой роли, андроид выигрывает у конкурентов. Его доля на рынке колеблется в районе 70% в течение нескольких лет. Второй по популярности системой, устанавливаемой на телефоны, является iOS с 28% рынка.Вы должны помнить, что iOS также вдохновлена ​​Unix. Еще 2%, что остальное.

    Источник: https://bit.ly/2J2UCaY [netmarketshare.com]

    В 2013 году komputerswiat.pl сообщил, что количество ежедневных активаций системы Android составляло 1,5 миллиона 90 011 4 90 012. С апреля 2017 года, по данным StatCounter, пользователей, подключенных к Интернету с Android, больше, чем всех пользователей Windows. В настоящее время это от 39,59% (Android) до 36,51% (Windows) рынка 5 .

    Не менее интересны данные по польскому рынку мобильной связи. Итак, согласно отчету аналитической компании IDC, в первом квартале 2017 года было продано более 2 млн телефонов, из которых 89% работали на Android, а остальные 11% — на iOS. В первом квартале этого года Microsoft завершила поставки смартфонов Lumia, поэтому на рынке осталось только две системы — Android и iOS. (...) В результате Android увеличил свою долю рынка на 6 процентных пунктов по сравнению с первым кварталом 2016 года 6 , — объясняет Марек Куйда, аналитик IDC.

    Linux - где самый популярный?

    Одним из методов исследования популярности является анализ количества и происхождения запросов по заданной фразе, направленных в поисковую систему. Что касается популярности Linux в Польше, то она распределяется очень равномерно. Большинство запросов о Linux поступает из Малопольши и Нижней Силезии. (данные за последние 14 лет).

    Источник: https://trends.google.pl/trends/explore?date=all&geo=PL&q=%2Fm%2F0fpzzp

    В мировом масштабе больше всего запросов на Linux поступает из Китая, что явно выделяет эту страну на карте мира.Далее идут Чехия и Южная Корея. Польша с 40 очками занимает 19-е место, а США — 37-е.

    Источник: https://trends.google.pl/trends/explore?date=all&q=%2Fm%2F0fpzzp

    Linux на Windows

    В прошлом году мы писали о о потеплении отношений Microsoft с Linux в отдельной статье . Однако Redmond Corporation продолжает удивлять.

    Почти год назад Microsoft добавила в свою систему модуль WSL (Windows Subsystem for Linux), позволяющий запускать Linux внутри Windows.Со временем в магазине Microsoft появилось больше дистрибутивов Linux, готовых к загрузке и установке. С другой стороны, последняя версия инструмента WSL DistroLauncher Sample позволяет запускать любой дистрибутив Linux 7 под WSL.

    Наконец, стоит отметить, что «окнопроизводители» наконец-то оценили потенциал Linux и вместо того, чтобы бороться с ним, начали продвигать его с верой в успех бизнеса.

    Источники:
    1 https://www.top500.org/statistics/sublist/
    2 https://w3techs.com/технологии/детали/os-linux/все/все
    3 http://linuxuser.tuxblog.pl/niemal-5-linuksa-desktopach-polsce/
    4 http://www.komputerswiat.pl /nowosci/smartfony/2013/16/android-dobil-do-1-5-mln-aktywacji-dziennie-jaki-bedzie-kolejny-kamien-milowy.aspx
    5 http://gs.statcounter.com/ os-market-share #monthly-201703-201803
    6 https://businessinsider.com.pl/wiadomosci/idc-Sprzedaż-smartfonow-w-polsce-q2-2017/k46vgb4
    7 http:// антиб.ru / windows-10-linux-wsl /

    .

    Основные определения, относящиеся к Linux

    Мирослав Зелент

    Давайте определим основные понятия, относящиеся к семейству систем Linux.

    Смокинг пингвина
    Талисман Linux, функционирующий как неофициальный логотип. Это сытый и всегда улыбающийся пингвин. Название, скорее всего, происходит от слова Torvalds Unix, оно также часто происходит от английского tuxedo, потому что пингвины выглядят так, как будто они носят смокинги.Также есть анекдот, повествующий о посещении Линусом Торвальдсом зоопарка - якобы автора ядра Linux якобы укусил пингвин :) и именно поэтому он выбрал это животное в качестве талисмана создаваемого ядра системы. Tux стал символом сообщества Linux и приверженцев свободного программного обеспечения во всем мире.
    Ядро операционной системы
    (ядро) — базовая часть операционной системы, отвечающая за все ее основные задачи: взаимодействие с регистрами процессора, памятью (операции чтения/записи) и внешними устройствами.Структура ядра обуславливает его особенности, такие как: многозадачность, многопоточность, мультидоступность и экспроприация.
    GNU GPL (стандартная общественная лицензия)
    Условия лицензирования
    , определенные консорциумом Free Software Foundation. Если кто-то выпускает программное обеспечение, содержащее какие-либо части, распространяемые под GPL, вы должны сделать исходный код доступным для каждого бинарного дистрибутива. Ядро Linux выпущено под лицензией GNU GPL.Цель лицензии GNU GPL состоит в том, чтобы дать пользователю свободу распространять свободное программное обеспечение и изменять его и, таким образом, гарантировать свободный доступ к этому программному обеспечению для всех пользователей. Linux не является общедоступным программным обеспечением. Авторские права на каждый источник компонентов Linux принадлежат разным авторам различных частей кода. Однако Linux является свободно распространяемым программным обеспечением в том смысле, что его пользователи могут свободно копировать, изменять и использовать его по своему усмотрению, а также раздавать свои копии без ограничений.Ограничения этой лицензии в соответствии с условиями лицензии GNUGPL не запрещают создание или продажу только бинарных дистрибутивов программного обеспечения, если каждый, кто получает бинарные копии, имеет возможность получить исходный код за разумную плату за распространение.

    Название GNU (GNU — это не Unix) происходит от так называемого Проект GNU — попытка создать полную свободную операционную систему GNU, начатая в январе 1984 года Ричардом Столменом (хакером по прозвищу RMS, основателем движения за свободное программное обеспечение, среди авторовв компилятор GCC).

    Распределение
    (дистрибутив) вся операционная система на базе ядра Linux (т.е. набор, состоящий из ядра, утилит и прикладного ПО и установщика. Примеры логотипов дистрибутивов приведены ниже.

    На выбор конкретного дистрибутива Linux влияет многими субъективными факторами: удобством использования системы, размером образа дистрибутива (включая мини-дистрибутивы), минимальными аппаратными требованиями, личными предпочтениями, назначением системы, простотой установки, доступным языком и т.д.Я рекомендую посетить веб-сайт Distro Watch.

    Графический интерфейс пользователя (GUI)
    часто называют графической средой — она определяет, как компьютер представляет информацию и взаимодействует с пользователем. Операционная система, лишенная графического окружения, является текстовой системой. Системы, которые взаимодействуют с использованием графической среды, являются графическими системами. Примеры сред с графическим интерфейсом: GNOME, KDE, LXDE, UNITY, MATE (Linux/Unix), AQUA (MacOS), AERO (Windows).
    Интерпретатор команд = системная оболочка
    Программа, являющаяся посредником между пользователем и ядром системы, представляет собой командную строку. Ядро системы содержит все подпрограммы, необходимые для ввода и вывода, управления файлами и т. д. Оболочка позволяет получить доступ к этим подпрограммам из командной строки. Кроме того, оболочки также поддерживают язык программирования. Программы оболочки обычно называют сценариями оболочки или сценариями.Оболочки Linux перечислены ниже
    БАШ
    Системная оболочка, написанная для проекта GNU. Программа выпущена под лицензией GNU GPL. BASH – одно из самых популярных системных покрытий. Это оболочка по умолчанию в большинстве дистрибутивов GNU/Linux и в Mac OS X 10.3 и выше, а также существуют версии для большинства систем Unix. Название является аббревиатурой от Bourne-Again Shell.Он является производным от оболочки Bourne sh, которая была одной из первых и наиболее важных оболочек UNIX.
    CSH
    (из оболочки C) — одна из системных оболочек Unix. Он был создан Биллом Джоем для системы BSD. Название C shell — это игра слов: оно буквально означает оболочку [синтаксиса] языка C, но фонетически это читаемая морская оболочка :) Эта оболочка происходит от оболочки SH. Оболочка C принесла много улучшений по сравнению с SH, например, m.в псевдонимы и история команд. К сожалению, его возможности сценариев оставляют желать лучшего.
    Кодекс коммерческих компаний
    Оболочка Korn — это оболочка Unix, разработанная Дэвидом Корном из AT&T Bell Laboratories в середине 1980-х годов. Оболочка KSH полностью обратно совместима с оболочкой SH, а также содержит многие элементы оболочки CSH, например историю типизированных команд. KSH включает в себя встроенную систему вычисления арифметических выражений и расширенные скриптовые функции, аналогичные тем, которые используются в более продвинутых языках программирования, таких как AWK, Perl.Korn Shell продается в виде исходного кода и двоичных файлов компаниями AT&T и Novell, а также другими компаниями за пределами США. PDKSH — это реализация CCC под лицензией общественного достояния (т. е. «для общественного блага»).

    Вы также можете найти больше статей об основах Linux на сайте блога miroslawzelent.pl (в разделе СТАТЬИ):

    .

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

    Написано mediologia . Отправлено Глава 6 - Права.

    Команды:

    ls –l Команда Linux, указывающая группу, к которой принадлежит файл

    chgrp Команда Linux, которая изменяет ассоциацию файлов, например, сгруппа от а до группы б

    newgrp Команда Linux, позволяющая во время сеанса изменить принадлежность файла из группы, определенной в файле /etc/passwd в начале сеанса

    id → команда Linux, позволяющая узнать текущую группу

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

    и т. д. / пароль

    Пользовательский файл /etc/passwd

    Список пользователей системы находится в файле /etc/passwd, который доступен для всех пользователей (т.е. может отображаться на экране всеми) и который состоит из колонок, изученных в предыдущих главах (см. главу 2):

    Столбцы разделены двоеточием:

    1 2 3 4 5 6 7

    корень:x:0:0:корень: /root:/bin/bash

    бин:х:1:1:бин:/бин:

    демон:x:2:2:демон:/sbin

    выключение:x:6:0:выключение: /sbin: /sbin:/shutdown

    halt:x:7:0:halt:/sbin:/sbin:/halt

    ftp:x:14:50:FTP Пользователь: /home/ftp:

    Никто: х: 99: 99: Никто: /:

    ola:x:519:504:Ola Pawlak: /home/ola: /bin/bash

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

    # пользовательдобавить питер

    Затем учетная запись с именем piotr будет добавлена ​​в файл / etc / passwd , чей домашний каталог будет / home / piotr

    .

    корень:x:0:0:корень: /root:/bin/bash

    бин:х:1:1:бин:/бин:

    демон:x:2:2:демон:/sbin

    выключение:x:6:0:выключение: /sbin: /sbin:/shutdown

    halt:x:7:0:halt:/sbin:/sbin:/halt

    ftp:x:14:50:FTP Пользователь: /home/ftp:

    Никто: х: 99: 99: Никто: /:

    piotr: x: 518: 504: Piotr Pietak: /home / piotr: bin / bash

    ola:x:519:504:Ola Pawlak: /home/ola: /bin/bash

    Файл группы пользователей /etc/group

    Группа пользователей содержит несколько пользователей, имеющих доступ к одним и тем же файлам.Эта группа определена в файле /etc/group и состоит из следующих столбцов:

    1. имя группы.

    2. Пустой столбец или содержащий символ x или *

    3. номер группы

    4 список пользователей, членов группы

    Пример:

    $ кот/и т.д/группа

    корень :х:0: корень

    бен : х: 1: корень, бин, демон

    демон :x:2: root, bin, демон

    sys :x:3: root, bin, adm

    Только системный администратор может изменять этот файл.

    Примеры:

    $ ID

    uid = 101 (piotr) gid = 1 (другие) → вы знаете к какой группе он принадлежит - piotr?

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

    $ ls -l файл

    -rw-y- - y-- 1 peter other 99 18 июля 14:00 файл

    $ файловая студия chgrp

    -год-г — г-- 1-й Петр студ 99 18 июля 14:00 файлы

    Курс Linux - Управление группами в Linux (команды Linux)

    • Создано .
    • 90 202 кликов: 46 371 90 205
    .

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

    Только новые статьи

    Введите свой e-mail

    Видео-курс

    Blender для новичков

    Ваше имя:Ваш E-Mail: