nogroup nobody что это

Какова цель пользователя «nobody»?

После прочтения списка всех пользователей-людей я заметил, что в моей системе Ubuntu есть учетная запись с именем «nobody».

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

nogroup nobody что это. Смотреть фото nogroup nobody что это. Смотреть картинку nogroup nobody что это. Картинка про nogroup nobody что это. Фото nogroup nobody что это

Меня это не волнует, но я хочу знать, какова цель этого пользователя? Он создается по умолчанию при новой установке Ubuntu или создается путем установки определенного пакета?

Он там для запуска вещей, которые не требуют каких-либо специальных разрешений. Обычно он зарезервирован для уязвимых сервисов (httpd и т. Д.), Так что если они будут взломаны, они нанесут минимальный ущерб остальной системе.

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

Вы можете прочитать немного больше о пользователе nobody в Ubuntu Wiki:

Чтобы ответить на ваши последующие действия:

Можете ли вы привести конкретный пример, когда указано использовать этот аккаунт?

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

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

Пользователь никто не зарезервирован только для NFS.

Ответы выше довольно неправильны, потому что они предполагают, что nobody это «общий» идентификатор пользователя в стиле анонимного / гостевого стиля

В модели управления доступом UNIX / Linux идентификаторы анонимных / гостевых пользователей не существуют, и это плохие предложения:

Имя nobody пользователя с идентификатором пользователя 65534 было создано и зарезервировано для определенной цели и должно использоваться только для этой цели: в качестве заполнителя для «несопоставленных» пользователей и идентификаторов пользователей в экспорте дерева NFS.

Запись в вики тоже очень неправильная.

Источник

Углубленное знакомство с пространствами имен Linux. Часть 2

nogroup nobody что это. Смотреть фото nogroup nobody что это. Смотреть картинку nogroup nobody что это. Картинка про nogroup nobody что это. Фото nogroup nobody что это

В предыдущей части мы разобрали, чем являются пространства имен, и какую роль они играют в современных системах, после чего познакомились с двумя их видами: PID и NET. Во второй и заключительной части материала мы изучим пространства имен USER, MNT, UTS, IPC и CGROUP, а в завершении объединим полученные знания, создав полностью изолированную среду для процесса.

USER namespace

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

«Пользовательские пространства имен изолируют связанные с безопасностью идентификаторы и атрибуты. В частности, ID пользователей, групповые ID, корневой каталог, ключи и возможности. Пользователь процесса и групповые ID внутри и вне user namespace* могут отличаться. Если конкретно, то процесс может иметь обычный непривилегированный UID вне этого пространства имен и в то же время иметь UID=0 внутри него».

*Прим. пер.: С целью облегчить чтение по ходу статьи выражения «пространство имен» и «namespace» будут использоваться попеременно.

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

Начиная с Linux 3.8 (и в отличие от флагов, используемых для создания других типов пространств имен), в некоторых дистрибутивах Linux для создания user namespace привилегий не требуется. Попробуем!

Как уже говорилось, пользовательские пространства имен могут быть и вложенными – процесс может иметь родительское пространство имен (за исключением процессов в корневом пространстве имен) и нуль или более дочерних пространств имен. Теперь посмотрим, как процесс видит файловую систему, в которой владение содержимым определяется в корневом user namespace.

Но, когда он пробует изменить содержимое каталога, то делает это с помощью своего UID в корневом user namespace, который отличается от UID файлов. Ладно, но как в таком случае процесс может взаимодействовать с файловой системой? Придется использовать отображение.

Отображение UID и GID

ID-внутри-ns (соответственно ID-вне-ns ) определяет начальную точку отображения UID внутри user namespace (соответственно вне этого пространства имен), а длина определяет количество последующих отображений UID (соответственно GID ). Эти отображения применяются, когда процесс внутри user namespace пытается манипулировать ресурсами системы, принадлежащими user namespace.

Некоторые важные правила из документации Linux:

«Если два процесса находятся в одном пространстве имен, тогда ID-вне-ns интерпретируется как UID ( GID ) в родительском user namespace идентификатора ( PID ) процесса. Здесь типичным случаем является процесс, производящий запись в собственный файл отображения ( /proc/self/uid_map или /proc/self/gid_map )».

Если два процесса находятся в разных пространствах имен, то ID-вне-ns интерпретируется как UID ( GID ) в user namespace процесса, открывающего /proc/PID/uid_map ( /proc/PID/gid_map ). Тогда записывающий процесс определяет отображение относительно его собственного user namespace.

Хорошо, проверим все это:

Процесс внутри пользовательского пространства имен считает, что его действительный UID является корневым, но в вышестоящем (корневом) пространстве имен его UID такой же, как у создавшего его процесса ( zsh с UID=1000 ). Вот иллюстрация для вышеприведенного фрагмента кода:

nogroup nobody что это. Смотреть фото nogroup nobody что это. Смотреть картинку nogroup nobody что это. Картинка про nogroup nobody что это. Фото nogroup nobody что это

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

nogroup nobody что это. Смотреть фото nogroup nobody что это. Смотреть картинку nogroup nobody что это. Картинка про nogroup nobody что это. Фото nogroup nobody что это

Посмотрим, как выглядит файловая система для процесса, находящегося внутри переотображенного user namespace.

Инспектирование текущих отображений процесса

Файлы /proc/‹PID
›/uid_map и /proc/‹PID›/gid_map также можно использовать для инспектирования отображения заданного процесса. Это инспектирование происходит относительно пользовательского пространства имен, в котором процесс находится.
Здесь есть два правила:

Хорошо, мы видим, что переотображенный процесс оболочки sh воспринимает переотображение пользователя на основе его собственного user namespace. Результаты можно интерпретировать так: процесс UID=0 в user namespace для процесса 6638 соответствует UID=200 в текущем namespace. Все это относительно. Выдержка из документации:

«Если процесс, открывающий файл, находится в том же user namespace, что и PID этого процесса, тогда ID-вне-ns определяется относительно родительского user namespace. Если процесс, открывающий файл, находится в другом user namespace, тогда ID-вне-ns определяется относительно user namespace этого открывающего файл процесса».

Существуют кое-какие важные правила по определению переотображения внутри файла:

«Определение переотображения – это одноразовая операция для каждого пространства имен: мы можем выполнить только одну операцию записи (которая может содержать несколько разделенных пустыми строками записей) в файл uid_map или ровно один из процессов в user namespace. Более того, сейчас в файл можно записать не более пяти строк».

User namespace и возможности

Как я уже говорил, первый процесс в новом user namespace имеет полный набор возможностей внутри этого user namespace.

Выдержка из документации:

Так что, даже возможности процесса инициализируются и интерпретируются относительно user namespace. Рассмотрим все это на примере, используя небольшую программу, порождающую новый процесс внутри user namespace и показывающую его возможности с позиции родительского user namespace и дочернего namespace.

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

MNT namespace

Пространства имен mount (MNT) позволяют создавать деревья файловых систем под отдельные процессы, тем самым создавая представления корневой файловой системы. Linux поддерживает структуру данных для всех различных файловых систем, смонтированных в системе. Эта структура является индивидуальной для каждого процесса, а также пространства имен. В нее входит информация о том, какие разделы дисков смонтированы, где они смонтированы и тип монтирования (RO/RW).

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

Схема устройства mount namespace:

nogroup nobody что это. Смотреть фото nogroup nobody что это. Смотреть картинку nogroup nobody что это. Картинка про nogroup nobody что это. Фото nogroup nobody что это
Схема оформлена Махмудом Ридваном из Toptal

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

Общие поддеревья

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

Из документации Linux:

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

Основной составляющей поддеревьев являются теги для каждой точки монтирования, сообщающие, что произойдет при добавлении/удалении точек монтирования, присутствующих в разных mount namespace. Добавление/удаление точек монтирования запускает событие, которое распространяется в так называемых одноранговых группах. Одноранговая группа – это набор vfsmounts (точек монтирования виртуальной файловой системы), которые распространяют события монтирования и размонтирования между собой.

Точки монтирования бывают четырех видов:

UTS namespace

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

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

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

IPC namespace

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

CGROUP namespace

Cgroup (контрольная группа) — это технология, контролирующая потребляемый процессом объем аппаратных ресурсов (RAM, HDD, блок ввода-вывода).

Итак, пространства имен CGroup виртуализируют другие виртуальные файловые системы в виде PID namespace. Но в чем вообще цель предоставления изоляции для данной системы? Выдержка из мануала:

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

Объединение изученного

Хорошо, теперь у нас есть каталог, чье содержимое совпадает с классическим корневым каталогом Linux. Важно отметить порядок обертывания пространства имен, поскольку некоторые операции (например, создание пространств имен PID, UTC, IPC) требуют наличия расширенных привилегий в текущем пространстве имен. Приведенный ниже алгоритм иллюстрирует необходимый порядок действий:

Теперь можно переходить к созданию пространств имен IPC и UTS.

Далее с помощью виртуальных интерфейсов создадим net namespace.

Теперь создадим отдельные пространства имен PID и MNT, а затем отделим корневую файловую систему.

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

Заключение

Пространства имен – это очень мощный принцип ядра Linux, обеспечивающий изоляцию системных ресурсов. Это один из основных принципов, стоящих за созданием контейнеров, таких как известные Docker или LXC. Он обеспечивает ортогональность – то есть, все возможности, предоставляемые пространствами имен, могут использоваться независимо. Тем не менее пространства имен не устанавливают ограничения на использование процессом аппаратных ресурсов, это делается с помощью контрольных групп. Совмещение пространств имен, контрольных групп и возможностей позволяет нам создавать полностью изолированную среду.

Источник

Операционные системы Astra Linux

Оперативные обновления и методические указания

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

1) от несанкционированного доступа;
2) в соответствии с Федеральным законом от 27.07.2006 № 149-ФЗ «Об информации, информационных технологиях и о защите информации» (статья 5, пункт 2).

Операционные системы Astra Linux Common Edition и Astra Linux Special Edition разработаны коллективом открытого акционерного общества «Научно-производственное объединение Русские базовые информационные технологии» и основаны на свободном программном обеспечении. С 17 декабря 2019 года правообладателем, разработчиком и производителем операционной системы специального назначения «Astra Linux Special Edition» является ООО «РусБИТех-Астра».

На web-сайтах https://astralinux.ru/ и https://wiki.astralinux.ru представлена подробная информация о разработанных операционных системах семейства Astra Linux, а также техническая документация для пользователей операционных систем и разработчиков программного обеспечения.

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

Репозитория открытого доступа в сети Интернет для операционной системы Astra Linux Special Edition нет. Операционная система распространяется посредством DVD-дисков.

Информацию о сетевых репозиториях операционной системы Astra Linux Common Edition Вы можете получить в статье Подключение репозиториев с пакетами в ОС Astra Linux и установка пакетов.

В целях обеспечения соответствия сертифицированных операционных систем Astra Linux Special Edition требованиям, предъявляемым к безопасности информации, ООО «РусБИтех-Астра» осуществляет выпуск очередных и оперативных обновлений.

Очередные обновления (версии) предназначены для:

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

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

Источник

Записки IT специалиста

Технический блог специалистов ООО»Интерфейс»

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

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

nogroup nobody что это. Смотреть фото nogroup nobody что это. Смотреть картинку nogroup nobody что это. Картинка про nogroup nobody что это. Фото nogroup nobody что этоДавайте рассмотрим его структуру подробнее. Каждая строка соответствует одному пользователю и имеет следующий формат:

С именем пользователя все понятно, а вот второй параметр может вызвать некоторое недоумение. Когда-то давно пароли хранились в открытом виде, о чем намекает само название файла, но затем от этой практики отказались и современные системы не хранят пароли в каком-либо виде вообще, хранится только сформированный по специальному алгоритму хеш, такие пароли в Linux называются затененными ( shadow). Для такого пароля во втором поле всегда ставится символ x.

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

В реальных сценариях данную возможность использовать не следует, так как наличие таких пользователей может вызвать конфликты в системе. Например, Gnome 3 в Debian 10 просто отказался загружаться после того, как мы создали такого пользователя.

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

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

Рассмотрение командных оболочек Linux выходит за рамки данной статьи, поэтому мы оставим эту тему, но расскажем о двух специализированных «оболочках», которые указывают, когда пользователю запрещен интерактивный вход в систему. Это обычно применяется для служб и пользователей от имени которых исполняются некоторые скрипты. Даже если такая учетная запись будет скомпрометирована войти в консоль с ней не удастся.

Обычно для этой цели используется:

В современных системах директория /sbin является символической ссылкой на /usr/sbin. Реже используется «оболочка»:

Разница между ними заключается в том, что /bin/false просто запрещает вход в систему, а /sbin/nologin выдает сообщение:

Предупреждение! Данная команда уничтожает корневую файловую систему, что приводит к ее полной неработоспособности и потере всех данных. Приведена сугубо в качестве примера.

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

nogroup nobody что это. Смотреть фото nogroup nobody что это. Смотреть картинку nogroup nobody что это. Картинка про nogroup nobody что это. Фото nogroup nobody что этоС учетом вышесказанного есть ряд сложившихся правил работы с этим пользователем. Во-первых, не следует выполнять из-под учетной записи суперпользователя повседневную работу. Для разовых действий используйте sudo, для административных работ допустимо временно повышать привилегии с последующим обязательным выходом. Во-вторых, доступ к данной учетной записи должен быть тщательно ограничен, потому как утеря контроля над root равносильно полной потере контроля над системой.

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

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

Многое стороннее ПО, например, сервер 1С и сборки PostgresPro занимают ближайшие свободные идентификаторы с верхнего конца диапазона: 999, 998 и т.д.

Из всего изложенного выше вы должны понимать, что система определяет пользователей по идентификаторам, а не по именам, а присвоение идентификаторов регулируется определенными правилами, но никакие из них, кроме двух специальных (0 для root и 65534 для nobody), не дают каких-либо дополнительных прав или привилегий.

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

Посмотреть список групп можно в файле /etc/group

nogroup nobody что это. Смотреть фото nogroup nobody что это. Смотреть картинку nogroup nobody что это. Картинка про nogroup nobody что это. Фото nogroup nobody что это

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

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

nogroup nobody что это. Смотреть фото nogroup nobody что это. Смотреть картинку nogroup nobody что это. Картинка про nogroup nobody что это. Фото nogroup nobody что этоДавайте внимательно посмотрим на скриншот и проанализируем членство созданного при установке пользователя andrey в дополнительных группах. Практически все они связанны с доступом к оборудованию или дают возможность использовать некоторые системные механизмы, скажем группа plugdev предоставляет возможность монтировать съемные устройства.

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

nogroup nobody что это. Смотреть фото nogroup nobody что это. Смотреть картинку nogroup nobody что это. Картинка про nogroup nobody что это. Фото nogroup nobody что этоСинтаксис этого файла предусматривает девять полей, содержащих следующую информацию:

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

В современных системах используется наиболее стойкий хеш SHA-512.

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

Для групп используется аналогичный по назначению файл /etc/gshadow

nogroup nobody что это. Смотреть фото nogroup nobody что это. Смотреть картинку nogroup nobody что это. Картинка про nogroup nobody что это. Фото nogroup nobody что этоЕго структура более проста, а поля имеют следующее назначение:

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

nogroup nobody что это. Смотреть фото nogroup nobody что это. Смотреть картинку nogroup nobody что это. Картинка про nogroup nobody что это. Фото nogroup nobody что это

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

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

Дополнительные материалы:

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

nogroup nobody что это. Смотреть фото nogroup nobody что это. Смотреть картинку nogroup nobody что это. Картинка про nogroup nobody что это. Фото nogroup nobody что это

Или подпишись на наш Телеграм-канал: nogroup nobody что это. Смотреть фото nogroup nobody что это. Смотреть картинку nogroup nobody что это. Картинка про nogroup nobody что это. Фото nogroup nobody что это

Источник

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

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