Архив рубрики: Публикации

Как использовать функцию NumPy arange() в Python

В библиотеке Python NumPy существует множество функций для выполнения различных типов числовых и научных операций. Создание различных типов массивов для различных целей — одно из практических применений библиотеки NumPy. В Python есть встроенная функция arange() для создания списка последовательных чисел. arange() — одна из функций создания массива библиотеки NumPy для создания массива числовых диапазонов.

 

Синтаксис

np.array  np.arange([start, ]stop, [step, ], dtype=None)

 

Эта функция может принимать четыре аргумента. Начала аргумент является необязательным, который определяет начальное значение массива. Если в функции используется начальное значение, то обязательный аргумент stop потребует определения конечного значения массива. Шаг аргумент является необязательным, что определяет разницу между элементами. Значение шага по умолчанию — 1, и значение этого аргумента не может быть 0. Четвертый аргумент, dtype, определяет тип данных элемента массива, а значение по умолчанию для этого аргумента — None . Эта функция возвращает объект массива на основе значений аргументов.

 

Использование функции arange()

Вы должны установить библиотеку Python NumPy, прежде чем практиковать примеры этого руководства. Использование функции arange() с одним аргументом, двумя аргументами и тремя аргументами было показано в этом разделе этой статьи с использованием нескольких примеров.

 

Пример-1: Использование функции arange() с одним аргументом

Когда функция arange() библиотеки NumPy используется с одним аргументом, тогда в качестве значения аргумента устанавливается верхнее значение массива. Следующий скрипт создаст массив значений диапазона NumPy и распечатает различные атрибуты массива и значения массива. 12 был использован в качестве значения аргумента функции arange(), которая создаст массив NumPy из 12 элементов, которые будут начинаться с 0 и заканчиваться до 11. Затем будут напечатаны размер, размер и тип данных массива. Значения массива будут напечатаны позже.

# Импортировать NumPy



import numpy as np



# Создать одномерный массив NumPy последовательных чисел



np_array = np.arange(12)



# Распечатать различные атрибуты массива NumPy



print('Размерность массива: ', np_array.ndim)



print('Длина массива: ', np_array.size)



print('Тип данных массива: ', np_array.dtype)



# Распечатать значения массива NumPy



print('Значения массива являются:', np_array)

Пример-2: Использование функции arange() с двумя аргументами

Когда функция arange() используется с двумя аргументами, тогда начальное и конечное значения массива будут установлены как значения аргументов. В следующем примере показано, как создать массив с нижним и верхним значениями с помощью функции arange() . Первый массив создается установкой 10 в начальное значение и 25 в конечное значение. Будет создан массив из 15 последовательных целых чисел. Затем будут напечатаны два атрибута и значения массива. Второй массив создается установкой 0,5 в начальное значение и 5,5 в конце. Будет создан массив из 5 последовательных плавающих чисел. Те же атрибуты и значения этого массива будут напечатаны позже.

# Импортировать библиотеку NumPy



import numpy as np



# Создать массив NumPy целых чисел с начальным и конечным значениями



np_array1 = np.arange(10, 25)



# Распечатать различные атрибуты массива



print('The size of the array: ', np_array1.size)



print('Тип данных массива: ', np_array1.dtype)



# Распечатать значения NumPy array



print('Значения массива являются:', np_array1)



# Создайте массив NumPy чисел с плавающей запятой с начальным и конечным значениями



np_array2 = np.arange(0.5, 5.5)



# Распечатать различные атрибуты массива



print('nРазмер массива: ', np_array2.size)



print('Тип данных массива: ', np_array2.dtype)



# Распечатать значения



print('Значения массива являются:', np_array2)

 

Пример-3: Использование функции arange() с тремя аргументами

В следующем примере показано использование функции arange() с тремя аргументами. 10 устанавливается для аргумента start , 20 устанавливается для аргумента остановки и 2 устанавливается для значения аргумента step функции arange(). Он создаст массив из 5 целочисленных значений. Размер, тип данных и значения массива будут напечатаны в качестве вывода.

# Импортировать Numpy



import numpy as np



# Создать массив NumPy целых чисел со значениями начала, конца и шага



np_array = np.arange(10, 20, 2)



# Распечатать различные атрибуты массива



print('Размер массива:', np_array. size)



print('Тип данных массива:', np_array. dtype)



# Распечатать значения массива NumPy



print('Значения массива:', np_array)

 

Пример-4: Использование функции arange() с отрицательными значениями аргументов

В следующем примере показано использование функции arange() с отрицательными значениями аргументов. 50 установлено для аргумента start, 20 установлено для аргумента остановки, а 2 установлено для значения аргумента step функции arange(). Он создаст массив из 9 отрицательных целых чисел. Размер, тип данных и значения массива будут напечатаны в качестве вывода.

# Импортировать Numpy



import numpy as np



# Создать массив отрицательных чисел NumPy со значениями начала, конца и шага



np_array = np. arange(- 50 , - 5 , 5)



# Распечатать различные атрибуты массива



print('Размер массива:' , np_array. size)



print('Тип данных массива:' , np_array. dtype)



# Распечатать значения массива NumPy



print('Значения массива:' ,np_array)

 

Заключение

Способы создания массива NumPy с помощью функции arange() были описаны в этом руководстве с использованием нескольких примеров. Здесь показано создание массива с последовательными положительными и отрицательными числами с помощью этой функции. Мы надеемся, что цель использования функции arange() будет понятна читателям после прочтения этой статьи.



2021-01-27T05:59:03
Python

Как извлечь метаданные из pdf файла?

Как извлечь метаданные из докуметов Microsoft Office и Adobe PDF файлов

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

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

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

Особенности:

  • Поддержка анализа файлов OpenOffice
  • Поддержка анализа solidWorks CAD чертежей
  • Собственный анализ файлов (не требует установки Office или Acrobat)
  • Поддержка форматов файлов Office 2003/2007/2010/2013
  • Поддержка документов Adobe PDF
  • Можно выбрать опеределенную директорию для анализа всех файлов, содержащихся в ней
  • Можно выбрать несколько отдельных файлов
  • Экспорт результатов в CSV для удобного анализа и отчетности
  • Интерфейс программы поддерживает сортировку по дате/времени
  • Содержит более 40 полей метаданных
  • Бесплатен как для личного, так и для коммерческого использования
  • Подходит для Windows
  • Не требует установки (portable)

 

 

Скачать можно на официальном сайте производителя Скачать

 



2021-01-26T15:42:34
Аудит ИБ

Онлайн-менеджер паролей: принцип работы и преимущества использования

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

Онлайн-менеджер паролей: принцип работы и преимущества использования

Как работает диспетчер?

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

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

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

Онлайн-менеджер паролей: принцип работы и преимущества использования

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

Стоит сказать, что существуют и более сложные сервисы. К ним относится корпоративный онлайн-диспетчер для компаний Webpass.pro, который обеспечивает дополнительную защиту и контроль доступов сотрудников к информации предприятия.

Достоинства использования онлайн-менеджеров

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

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

  • менеджер позволяет сохранять в утилите не только сведения для входа, но и другие конфиденциальные сведения, например, банковские данные;

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

  • приложение фиксирует возможную подмену URL-адресов и уведомляет о ней пользователей, предостерегая его о риске кражи информации;

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

К тому же нет нужды запоминать множество сложных последовательностей: достаточно выучить лишь мастер-пароль.

Webpass.pro для безопасного хранения данных

Если вы в поиске надежного онлайн-диспетчера для своего бизнеса, Webpass.pro — лучший выбор. У сервиса русскоязычный и понятный интерфейс, поэтому вам не придется разбираться с его инструментами «на ощупь».

Онлайн-менеджер паролей: принцип работы и преимущества использования

Что может предложить кроссплатформенный онлайн-менеджер:

  • генератор паролей;

  • сохранение истории внесенных изменений;

  • анализ актуальности и безопасности комбинаций;

  • настройка допустимой сложности идентификаторов;

  • надежное шифрование с протоколами AES-256 и RSA;

  • возможность настройки уровней доступа для работников;

  • импорт данных из CSV и Excel;

  • двухфакторная аутентификация от Google;

  • защита от подбора мастер-пароля;

  • отсутствие доступа сервиса к вашим сведениям;

  • регулярный аудит системы.

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

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

Источник: Webpass.pro.



2021-01-25T18:05:48
Безопасность

Kerio Control IPsec VPN.

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

VPN создан с помощью Kerio Control 9.3.5. Керио установлен, настроен и работает. У ЛВС назначен внешний статический IP-адрес. Для VPN использован протокол IPsec (сокращение от IP Security) wiki. Клиенты подключаются через встроенное в Windows приложение для VPN.

Порядок действий.

1.Активация VPN сервера.

2.Настройка сервера VPN IPsec.

3.Настройка правил трафика.

4.Настройка пользователя VPN в сервер.

5.Настройка VPN-клиента.

6.Подключение к VPN.

7.Автозапуск VPN при включении ПК.

 

1.Активация.

Активация VPN-сервера в Kerio Control происходит на вкладке бокового меню «Интерфейсы».  Необходимо кликнуть по VPN-серверу мышкой два раза и войти в настройку. Для добавления нового VPN в нижней части окна нажмите на кнопку «Добавить» и выберите желаемый способ из раскрывшегося списка.

 

2.Настройки VPN-сервера.

Переходим в свойства VPN-сервера и выполняем следующие настройки.

1.Включить сервер IPsec VPN – отмечаем галочкой.

2.VPN-сеть: 192.168.100.0 — удобный IP-адрес для сети VPN.

3.Маска 255.255.255.0 – маска, соответствующая IP.

4.Сертификат первоначально не используем. Когда VPN заработает можно добавить сертификат.

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

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

7.Включить аутентификацию MS-CHAPv2 – отмечаем галочкой.

На вкладках KerioVPN, DNS, WINS настройки не изменялись. Если Керио привязан к домену, в настройках DNS нужно указать IP-адрес DC.

Нажимаем ОК для сохранения настроек. Сервер IPsec VPN начнет работать.

 

3.Правила трафика.

Для работы VPN понадобятся разрешающие правила трафика.  Переходим в боковом меню в раздел «Правила трафика» и создаем новые или редактируем существующие правила. Должно получится 3 правила как на картинке ниже.

Internet access (NAT) – правило позволяет выходить в Интернет. В графе «Источник» должны быть указаны «Клиенты VPN».

Local traffic – правило разрешает локальный трафик. VPN клиенты получают доступ к общим ресурсам в локальной сети.

VPN – правило разрешает подключение из Интернета в Керио по Ipsec и Kerio VPN.

 

4.Настройка пользователя VPN в сервер.

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

 

Открываем редактирование пользователя и на вкладке права отмечаем галочку «Пользователь может подключ., используя VPN».

 

На вкладке «Адреса» каждому клиенту можно назначить статический IP-адрес в VPN.

Нажимаем ОК для сохранения введенных параметров.

Настройка VPN подробно расписана в официальном мануале Керио.

 

5.Настройка VPN-клиента.

Клиентами VPN будут компьютеры с ОС Windows 7 и Windows 10, расположенные вне локальной сети и подключенные к Интернету.

Создадим новое VPN подключение в Центре управления сетями и общим доступом. Для Windows 7-10 этот процесс почти одинаковый.

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

 

Выбираем вариант подключения – Подключение к рабочему месту.

 

Если ранее в компьютере уже создавались VPN подключения, то на возникший вопрос – «Использовать имеющееся подключение» выбираем ответ – «Нет, создать новое».

 

Выбираем «Использовать мое подключение к Интернету (VPN).

 

В следующем шаге мастера указываем внешний статический IP адрес Керио. Имя указываем любое понятное.

 

Указываем имя VPN пользователя в Керио и его пароль.

 

Через некоторое время после нажатия кнопки «Создать» подключение будет готово.

 

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

 

На вкладке «Безопасность» вводим следующие настройки.

1.Тип VPN: L2TP Ipsec VPN.

2.Шифрование данных: обязательное (отключится, если нет шифрования).

3.Разрешить следующие протоколы: Протокол Micrsoft CHAP версии 2 (MS-CHAP v2)

 

На этой же вкладке «Безопасность» переходим в дополнительные свойства.

1.Отмечаем точкой настройку – «Для проверки подлинности использовать предварительный ключ.

2.Вводим ключ-пароль, такой же как в настройках Керио.

3.Нажимаем ОК для сохранения.

 

Переходим на вкладку «Сеть».

1.Выбираем Протокол Интернета версии 4 (TCP/IP).

Нажимаем кнопку «Свойства».

 

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

 

На вкладке параметры IP есть настройка «Использовать основной шлюз в удаленной сети».

Если галочка стоит, то весь трафик пойдет через Керио. В этом случае его можно контролировать, и он попадает под все правила и настройки Kerio Control. Недостаток в замедлении скорости передачи.

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

Дополнение.

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

Проблема решается статическим маршрутом на ПК клиента VPN.

1.В командной строке вводим



для уточнения номера соединения. (VPN-KERIO = 65)

При каждом новом создании, пересоздании VPN-соединения номер меняется.

2.Вводим маршрут



192.168.1.0 mask 255.255.255.0 — сеть назначения с маской

192.168.100.1 – IP-адрес VPN-сервера (VPN шлюз)

metric 1 –  метрика

if 65 – номер интерфейса

-p – сохранение маршрута после перезагрузки ПК.

 

Удаление маршрута (если понадобится).



 

6.Подключение VPN.

Чтоб активировать VPN, нажимаем на значок компьютера (сеть) в нижней правой части экрана. В раскрывшемся списке выбираем нужное соединение и нажимаем кнопку «Подключение».

 

В открывшемся подключении вводим логин и пароль учетной записи пользователя VPN.  Нажимаем кнопку «Подключение».

 

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

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

Можно пробовать пинговать сервер в локальной сети с компьютера VPN клиента. Часто доступу препятствует антивирус. Так же можно проверить доступ к общим папкам в локальной сети или подключение к удаленному рабочему столу сервера.

В меню Kerio Control отобразятся подключенные пользователи в разделе «Клиенты VPN».

 

7.Автозапуск VPN при включении ПК.

Все действия выполняются на ПК клиента VPN. Автозапуск осуществляется через добавления параметра в реестре.

1.Входим в реестр Windows. Win+R >> regedit

 

2.Переходим по ветке каталогов.

HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun – автозапуск для всех пользователей.

(HKEY_CURRENT_USER – только для текущего пользователя)

 

3.Создаем новый строковый параметр со значением rasdial VPN-KERIO admin Password12345.

vpn – любое понятное имя латиницей

rasdial – приложение, которое запускает VPN

VPN-KERIO – название VPN соединения (как при создании)

admin – имя VPN пользователя в Керио

Password12345– пароль VPN пользователя в Керио

Нажимаем ОК и перезагружаем ПК.

Теперь после входа в учетную запись будет появляться командная строка с ходом подключения к VPN.

VPN подключится автоматически.



Скрипт Python для мониторинга сетевого подключения

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

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

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

 

Требования к проекту

Для этого проекта нам понадобятся только:

  • Основы программирования на Python
  • Базовое понимание компьютерных сетей.
  • Удобно пользоваться терминалом.

 

Логика проекта

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

 

Что такое время работы и простоя сети?

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

 

Как определить время простоя

Теперь, когда мы знаем, что такое простои в Интернете, вы, возможно, задаетесь вопросом: «Как нам его определить?»

Не усложняя наш код, мы можем использовать ping. Проверка связи — это метод, при котором мы постоянно проверяем связь с надежным сервером, например Cloudflare или Google DNS, а затем ждем ответа.

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

По разнице во времени мы можем отметить, когда и как долго не работал интернет.

Мы также должны быть осторожны при пинге отдельного сервера, потому что мы можем ошибочно принять пинг за DDoS-атаку, что может привести к блокировке нашего IP-адреса, что приведет к отрицательным результатам.

Вот блок-схема, объясняющая эту концепцию:

Скрипт Python для мониторинга сетевого подключения

 

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

 

Теперь покажите мне код

Как обычно, в Python мы начинаем с импорта необходимых библиотек. Затем мы создаем файл журнала в текущем рабочем каталоге.

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

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

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

import socket

import time

import datetime

import os

import sys

LOG_FNAME = "network.log"

FILE = os.path.join(os.getcwd(), LOG_FNAME)

def send_ping_request(host="1.1.1.1", port=53, timeout=3):

try:

socket.setdefaulttimeout(timeout)

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.connect((host,port))

except OSError as error:

return False

else:

s.close()

return True

def write_permission_check():

try:

with open(FILE, "a") as file:

pass

except OSError as error:

print("Ошибка создания файла журнала")

sys.exit()

finally:

pass

def calculate_time(start, stop):

time_difference = stop - start

seconds = float(str(time_difference.total_seconds()))

return str(datetime.timedelta(seconds=seconds)).split(".")[0]

def mon_net_connection(ping_freq=2):

monitor_start_time = datetime.datetime.now()

motd = "Мониторинг сетевого подключения начат в: " + str(monitor_start_time).split(".")[0] + " Отправка запроса ping в " + str(ping_freq) + " секунды"

print(motd)



with open(FILE, "a") as file:

file.write("n")

file.write(motd + "n")

while True:

if send_ping_request():

time.sleep(ping_freq)

else:

down_time = datetime.datetime.now()

fail_msg = "Сетевое соединение недоступно в: " + str(down_time).split(".")[0]

print(fail_msg)

with open(FILE, "a") as file:

file.write(fail_msg + "n")

i = 0

while not send_ping_request():

time.sleep(1)

i += 1

if i >= 3600:

i = 0

now = datetime.datetime.now()

continous_message = "Постоянная недоступность сети: " + str(now).split(".")[0]

print(continous_message)

with open(FILE, "a") as file:

file.write(continous_message + "n")

up_time = datetime.datetime.now()

uptime_message = "Сетевое подключение восстановлено: " + str(up_time).split(".")[0]



down_time = calculate_time(down_time, up_time)

_m = "Подключение к сети было недоступно для " + down_time



print(uptime_message)

print(_m)



with open(FILE, "a") as file:

file.write(uptime_message + "n")

file.write(_m + "n")

mon_net_connection()




Заключение

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



2021-01-25T11:27:42
Python

Как пользоваться командой usermod в Linux?

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

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

Синтаксис команды usermod имеет следующий вид:

usermod [options] USER

Только root или пользователи с sudo доступом могут вызывать usermod и изменять учетную запись пользователя. В случае успеха команда не выводит никаких результатов.

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

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

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

usermod -a -G GROUP USER

Если вы хотите добавить пользователя сразу в несколько групп, укажите группы после -G параметра, разделенные, (запятыми), без пробелов.

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

sudo usermod -a -G games linuxize

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

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

Изменить основную группу пользователя

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

sudo usermod -g GROUP USER

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

usermod -g developers linuxize

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

Изменение информации о пользователе

Чтобы изменить информацию GECOS (полное имя пользователя), запустите команду с параметром -c, за которым следует новый комментарий и имя пользователя:

usermod -c "GECOS Comment" USER

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

usermod -c "Test User" linuxize

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

Изменение домашнего каталога пользователя

В большинстве систем Linux домашние каталоги пользователей названы по имени пользователя и создаются в каталоге /home.

Если по какой-то причине вы хотите изменить домашний каталог пользователя, вызовите usermodкоманду, указав опцию -d, указав абсолютный путь к новому домашнему каталогу и имя пользователя:

usermod -d HOME_DIR USER

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

usermod -d HOME_DIR -m USER

Вот пример, показывающий, как изменить домашний каталог пользователя www-data на /var/www:

usermod -d /var/www www-data

Изменение пользовательской оболочки по умолчанию

Оболочка по умолчанию — это оболочка, которая запускается после входа в систему. По умолчанию в большинстве систем Linux в качестве оболочки по умолчанию используется Bash Shell.

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

usermod -s SHELL USER

В приведенном ниже примере мы меняем оболочку пользователя на Zsh:

sudo usermod -s /usr/bin/zsh linuxize

Вы можете узнать, какие оболочки доступны в вашей системе, просмотрев /etc/shells содержимое файла.

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

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

Чтобы изменить UID пользователя, вызовите команду с -uпараметром, следующим за новым UID и именем пользователя:

usermod -u UID USER

В приведенном ниже примере показано, как изменить номер «UID» на «1050»:

sudo usermod -u 1050 linuxize

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

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

Хотя не очень часто, иногда вам может потребоваться изменить имя существующего пользователя. Параметр -l используется для изменения имени пользователя:

usermod -l NEW_USER USER

В приведенном ниже примере мы переименование пользователя linuxizeк lisaна «1050»:

sudo usermod -l linuxize lisa

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

Установка даты истечения срока действия пользователя

Дата истечения срока — это дата, когда учетная запись пользователя будет отключена. Чтобы установить дату истечения срока действия пользователя, используйте опцию -e:

sudo usermod -e DATE USER

Срок годности должен быть установлен в формате YYYY-MM-DD.

Например, чтобы отключить пользователя linuxize на 2022-02-21, вы бы выполнить следующую команду:

sudo usermod -e "2022-02-21" linuxize

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

sudo usermod -e "" linuxize

Используйте chage команду -l, чтобы просмотреть дату истечения срока действия пользователя:

sudo chage -l linuxize

Last password change : Jul 24, 2018

Password expires : never

Password inactive : never

Account expires : never

Minimum number of days between password change : 0

Maximum number of days between password change : 99999

Number of days of warning before password expires : 7

Срок годности хранится в /etc/shadow файле.

Блокировка и разблокировка учетной записи пользователя

Опция -L позволяет заблокировать учетную запись пользователя:

usermod -L USER

Команды вставят восклицательный знак (!) перед зашифрованным паролем. Если поле пароля в /etc/shadow файле содержит восклицательный знак, пользователь не сможет войти в систему, используя аутентификацию по паролю. Другие методы входа в систему, такие как аутентификация на основе ключей или переключение на пользователя, по-прежнему разрешены. Если вы хотите заблокировать учетную запись и отключить все методы входа в систему, вам также необходимо установить дату истечения срока действия равной 1.

В следующих примерах показано, как заблокировать пользователя linuxize:

sudo usermod -L linuxize

sudo usermod -L -e 1 linuxize

Чтобы разблокировать пользователя, запустите usermodс -Uопцией:

usermod -U USER

Заключение

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

Не стесняйтесь оставлять комментарии, если у вас есть вопросы.



2021-01-25T10:07:27
Вопросы читателей