Как управлять доступом на запись для терминала?
Использование:
Если никакие опции не указаны, то mesg отображает текущий статус доступа к вашему терминалу.
mesg — UNIX-утилита, управляет доступом на запись для терминала данного пользователя. Обычно используется для разрешения или запрета другим пользователям писать на терминал данного пользователя.Использование:
mesg [y|n]где
y — разрешить другим пользователям доступ на запись к вашему терминалу, а n — запретить доступ на запись к вашему терминалу.Если никакие опции не указаны, то mesg отображает текущий статус доступа к вашему терминалу.
Команда Basename в Linux
Она поддерживает два формата синтаксиса:
Самый простой пример — вывести имя файла с удаленными ведущими каталогами:
basename — это утилита командной строки, которая удаляет каталог и конечный суффикс из заданных имен файлов.Она поддерживает два формата синтаксиса:
basename NAME [SUFFIX]basename берет имя файла и печатает последний компонент имени файла. При желании он также может удалить любой конечный суффикс.
basename OPTION... NAME...
Самый простой пример — вывести имя файла с удаленными ведущими каталогами:
basename /etc/passwdВывод будет включать имя файла:
passwdУдаление конечного суффикса с помощью basename
Чтобы удалить любой конечный суффикс из имени файла, передайте суффикс в качестве второго аргумента:
Другой способ удалить конечный суффикс — указать суффикс с параметром
Чтобы удалить любой конечный суффикс из имени файла, передайте суффикс в качестве второго аргумента:
basename /etc/hostname nameРезультат:
hostОбычно эта функция используется для удаления расширений файлов:
basename /etc/sysctl.conf .confВ результате останется только
sysctl.Другой способ удалить конечный суффикс — указать суффикс с параметром
-s ( --suffix=SUFFIX ):basename -s .conf /etc/sysctl.confКоманды перезагрузки Linux
Когда ядро обновляется, если вы не используете
В большинстве современных дистрибутивов Linux утилита
Чтобы перезагрузить систему Linux, просто введите:
Когда ядро обновляется, если вы не используете
Livepatch или KernelCare, вам необходимо перезагрузить систему Linux. Перезагрузка системы также может потребоваться в других обстоятельствах, например, при устранении неполадок оборудования, установке приложений и т. Д. Если вы используете автономный сервер Linux, вам нужно знать, как перезапустить систему из командной строки.В большинстве современных дистрибутивов Linux утилита
systemctl заменяет большинство команд управления питанием, используемых в старых дистрибутивах Linux, на sysvinit. Команды reboot и shutdown являются псевдонимами systemctl и доступны в системе по соображениям совместимости.Чтобы перезагрузить систему Linux, просто введите:
sudo systemctl rebootСистема будет немедленно перезагружена.
Как импортировать ключи GPG?
Для импорта публичного ключа выполните:
Для добавления приватного ключа из файла private.key выполните команду:
Для импорта публичного ключа выполните:
gpg --import public.keyЭта команда добавит публичный ключ, который находится в файле "
public.key".Для добавления приватного ключа из файла private.key выполните команду:
gpg --import private.keyКак сгенерировать пару публичный-приватный ключ в GPG?
Для генерирования пары ключей запустите команду:
⁃ Ваше полное имя
⁃ Адрес электронной почты
Затем программа покажет выбранный вами идентификатор пользователя и спросит, всё ли правильно? Если всё правильно, вам нужно будет ввести O. Затем программа попросит ввести пароль.
Вместо
gpg — это инструмент шифрования и электронного подписывания. В его работе используется ассиметричное шифрование, основанное на двух ключах: приватный и публичный. Для генерирования пары ключей запустите команду:
gpg --gen-keyВам нужно будет ввести:
⁃ Ваше полное имя
⁃ Адрес электронной почты
Затем программа покажет выбранный вами идентификатор пользователя и спросит, всё ли правильно? Если всё правильно, вам нужно будет ввести O. Затем программа попросит ввести пароль.
Вместо
--gen-key можно использовать опцию --full-generate-key, которая также сгенерирует пару ключей, но покажет больше опций. При использовании --gen-key некоторые значений опций используются по умолчанию.Как посмотреть или сохранить свой публичный (открытый) ключ в GPG?
Чтобы посмотреть публичный ключ используйте опцию
Чтобы посмотреть публичный ключ используйте опцию
--export, а также опцию -a, которая означает, что выводимые данные должны быть не в бинарном формате, а в ASCII (то есть текстовом, пригодном для копирования-вставки в сообщение мессенджера или электронной почты), в конце укажите имя пользователя:gpg --export -a [name]Для сохранения публичного ключа в файл используйте перенаправление вывода:
gpg --export -a [name] > public.keyВ результате публичный ключ будет сохранён в файл
public.key.Как посмотреть или сохранить свой приватный (секретный) ключ в GPG?
Для просмотра и экспорта приватного ключа используется опция
Для просмотра и экспорта приватного ключа используется опция
--export-secret-key:gpg --export-secret-key -a [name]Для сохранения в файл:
gpg --export-secret-key -a [name] > private.keyИли с опцией
-o:gpg --export-secret-key -a -o private.key [name]Утилита ipmitool
Эта программа позволяет управлять функциями интеллектуального интерфейса управления платформой (IPMI) либо локальной системы с помощью драйвера устройства ядра, либо удаленной системы с использованием IPMI.
Эти функции включают в себя печать информации о FRU, настройку локальной сети, показания датчиков и удаленное управление питанием шасси.
Управление IPMI локального системного интерфейса требует установки и настройки совместимого драйвера ядра IPMI. В Linux этот драйвер называется OpenIPMI и входит в стандартные дистрибутивы.
Для управления удаленной станцией необходимо включить и настроить интерфейс IPMI-over-LAN. В зависимости от конкретных требований каждой системы может быть возможно включить интерфейс LAN с помощью
ipmitool — утилита для управления устройствами с поддержкой IPMI Эта программа позволяет управлять функциями интеллектуального интерфейса управления платформой (IPMI) либо локальной системы с помощью драйвера устройства ядра, либо удаленной системы с использованием IPMI.
Эти функции включают в себя печать информации о FRU, настройку локальной сети, показания датчиков и удаленное управление питанием шасси.
Управление IPMI локального системного интерфейса требует установки и настройки совместимого драйвера ядра IPMI. В Linux этот драйвер называется OpenIPMI и входит в стандартные дистрибутивы.
Для управления удаленной станцией необходимо включить и настроить интерфейс IPMI-over-LAN. В зависимости от конкретных требований каждой системы может быть возможно включить интерфейс LAN с помощью
ipmitool через системный интерфейс.Для чего нужны fingerprint в GPG
Fingerprint ключей в gpg имеют примерно следующий вид:
Например для удаления секретного ключа, используя в качестве идентификатора отпечаток:
Посмотреть опечаток для ключа определённого пользователя можно командой:
Fingerprint ключей в gpg имеют примерно следующий вид:
D743 875D 1BB6 095A 366B B81F 3BFD 8738 3926 AC69Отпечаток может выполнять функцию идентификатора ключа — то есть вместо указания имени пользователя можно использовать отпечаток.
Например для удаления секретного ключа, используя в качестве идентификатора отпечаток:
gpg --delete-secret-key 'D743 875D 1BB6 095A 366B B81F 3BFD 8738 3926 AC69'Вторая функция применения отпечатка — это верификация публичного ключа.
Посмотреть опечаток для ключа определённого пользователя можно командой:
gpg --fingerprint <username>Шифрование файлов и данных с GPG
Про шифрование в
1) Что оно может быть ассиметричным и симметричным
2) Шифрование можно совмещать с подписыванием файла.
3) Зашифровать можно одним или более публичными ключами.
Для шифрования файла используя симметричный метод с паролем используйте опцию
Следующая команда для шифрования файла test.php паролем в gpg:
Для того, чтобы зашифровать файл симметричным шифрованием с возможностью расшифровки приватным ключом нужно использовать сразу несколько опций:
Про шифрование в
gpg нужно знать:1) Что оно может быть ассиметричным и симметричным
2) Шифрование можно совмещать с подписыванием файла.
3) Зашифровать можно одним или более публичными ключами.
Для шифрования файла используя симметричный метод с паролем используйте опцию
-c (либо её длинный аналог --symmetric).Следующая команда для шифрования файла test.php паролем в gpg:
gpg -c test.phpВ результате шифрования будет создан файл с расширением
.gpg (в данном случае это будет файл test.php.gpg).Для того, чтобы зашифровать файл симметричным шифрованием с возможностью расшифровки приватным ключом нужно использовать сразу несколько опций:
-e — означает шифрование данных-c — означает симметричное шифрование-r 'id' — означает зашифровать данные для пользователя с определённым idgpg -e -c -r <username> test.phpКак в GPG шифровать файлы, чтобы их можно было отправить в виде сообщения
По умолчанию файлы сохраняются в бинарный формат OpenPGP (в этом формате файл может занимать значительно меньше места чем исходный файл до шифрования). Если вы откроете зашифрованный файл, то убедитесь, что это бинарные данные, которые невозможно передать копированием-вставкой без потери их функциональности.
Но иногда может возникнуть необходимость переслать зашифрованный файл или сообщение по почте или в мессенджере в виде обычного текста. Это возможно с помощью опции -a, которая создаёт зашифрованный файл в формате ASCII.
По умолчанию файлы сохраняются в бинарный формат OpenPGP (в этом формате файл может занимать значительно меньше места чем исходный файл до шифрования). Если вы откроете зашифрованный файл, то убедитесь, что это бинарные данные, которые невозможно передать копированием-вставкой без потери их функциональности.
Но иногда может возникнуть необходимость переслать зашифрованный файл или сообщение по почте или в мессенджере в виде обычного текста. Это возможно с помощью опции -a, которая создаёт зашифрованный файл в формате ASCII.
gpg -e -a -r <username> test.phpВ результате будет создан файл с расширением .asc (в данном случае это файл
test.php.asc).Как в GPG зашифровать сообщение
Для зашифровки сообщения используйте следующую конструкцию:
Зашифрованное сообщение будет выведено в стандартный вывод, то есть в терминал. Если вы хотите сохранить зашифрованное сообщение в файл, то используйте конструкцию:
Для зашифровки сообщения используйте следующую конструкцию:
echo 'text message' | gpg -e -a -r 'destination'Обратите внимание, что опция -a добавлена для того, чтобы зашифрованное сообщение можно было скопировать и вставить в мессенджер или в email (или распечатать на принтере). Без этой опции будут выведены бинарные данные.
Зашифрованное сообщение будет выведено в стандартный вывод, то есть в терминал. Если вы хотите сохранить зашифрованное сообщение в файл, то используйте конструкцию:
echo 'text message' | gpg -e -a -r 'destination' > fileКак расшифровать файлы и сообщение в GPG?
Для расшифровки используется опция
Пример расшифровки файла:
echo 'My text message' | gpg -e -a -r 'username' | gpg -d
Для расшифровки используется опция
-d:Пример расшифровки файла:
gpg -d test.php.gpgПричём данные будут выведены прямо в стандартный вывод (в терминал). Чтобы сохранить данные в файл используйте опцию
-o, после которой укажите имя нового расшифрованного файла:gpg -d -o test.php test.php.gpgТакже gpg может расшифровывать данные из стандартного ввода. В этом можно убедиться подобной конструкцией:
echo 'My text message' | gpg -e -a -r 'username' | gpg -d
Как посмотреть получателей зашифрованного в GPG файла
Если вы не хотите расшифровывать файл (а может быть просто не можете из-за отсутствия приватного ключа), но хотите посмотреть, кому он предназначен, то для этого имеется опция
Вместе с этой опцией нужно использовать опцию
Если вы не хотите расшифровывать файл (а может быть просто не можете из-за отсутствия приватного ключа), но хотите посмотреть, кому он предназначен, то для этого имеется опция
--list-only.Вместе с этой опцией нужно использовать опцию
-d, а также указать проверяемый файл, пример:gpg --list-only -d test.php.gpgПричём вплоть до 2019 года, почти до самых последних версий gpg, у опции
--list-only есть интересный баг: если на компьютере, где выполняется проверка, имеется приватный ключ пользователя, кому предназначен данный файл, то не выводиться ничего. Это может запутать, поскольку также ничего не выводиться в случае, если получатель зашифрован. Чтобы обойти этот баг, используйте опцию -v, получается примерно следующая команда:gpg --list-only -v -d test.php.gpgКак отправить сообщение другому пользователю?
Использование:
write — unix-утилита, позволяющая отправить сообщение другому пользователю, который имеет сессию в этой же системе. Переписка посредством write возможна только в пределах одной системы.Использование:
write пользователь [терминал]После запуска команды
write пользователь, которому отправлено сообщение, получает сообщение вида:Message from имя@хост on терминал at чч:ммПосле этого все вводящиеся строки будут копироваться на терминал указанного пользователя. Для отправки ответов следует использовать ту же команду write. Для завершения программы используется символ конца файла или сочетание клавиш
CTRL+C: ваш собеседник увидит в том случае «EOF», означающее конец разговора.Выбор приватного ключа для расшифровки
Как мы уже выяснили, даже зашифрованная информация в GPG содержит имя получателя. Поэтому процедура расшифровки файлов понятна: GPG смотрит получателя и использует его приватный ключ для извлечения данных.
А как это происходит в случае, если получатель зашифрован? В этом случае GPG просто перебирает все имеющиеся в системе приватные ключи.
Вы можете помочь программе используя опцию
Зашифрованная информация содержит как минимум такие части как: 1) идентификатор получателя,
2) «полезная нагрузка» - зашифрованные данные.
Идентификатор получателя может быть поддельным, это приведёт к тому, что попытка расшифровки в GPG завершиться неудачей.
Для расшифровки таких файлов с поддельным ключевым ID, используется опция
Как мы уже выяснили, даже зашифрованная информация в GPG содержит имя получателя. Поэтому процедура расшифровки файлов понятна: GPG смотрит получателя и использует его приватный ключ для извлечения данных.
А как это происходит в случае, если получатель зашифрован? В этом случае GPG просто перебирает все имеющиеся в системе приватные ключи.
Вы можете помочь программе используя опцию
--try-secret-key name, вместо nаme нужно указать идентификатор пользователя с закрытым ключом, для которого зашифрован файл.Зашифрованная информация содержит как минимум такие части как: 1) идентификатор получателя,
2) «полезная нагрузка» - зашифрованные данные.
Идентификатор получателя может быть поддельным, это приведёт к тому, что попытка расшифровки в GPG завершиться неудачей.
Для расшифровки таких файлов с поддельным ключевым ID, используется опция
--try-all-secrets. Она будет пробовать все секретные ключи, пока не найдёт правильный для расшифровки.Как в GPG подписать файл
Для подписи файла используется опция -s или её более длинный вариант
Если у вас на компьютере несколько приватных ключей, то нужно использовать также опцию -u name или её более длинный вариант --local-user name. Эта опция перезаписывает значение
Подписать файл
Для подписи файла используется опция -s или её более длинный вариант
--sign. Если у вас на компьютере только один приватный ключ, то он будет выбран автоматически.Если у вас на компьютере несколько приватных ключей, то нужно использовать также опцию -u name или её более длинный вариант --local-user name. Эта опция перезаписывает значение
--default-key (Она устанавливает ключ, который будет использоваться по умолчанию, чтобы его не нужно было вводить каждый раз).Подписать файл
test.php, приватным ключом пользователя username, тогда моя команда следующая:gpg -u 'username' -s test.phpБудет создан файл с расширением .gpg, в моём случае это файл
test.php.gpg. Этот файл включает И исходный файл, И его цифровую подпись.Как в GPG проверить подпись файла
Для проверки подписи используется опция
Цифровая подпись может быть интегрирована в файл, а может содержаться в отдельном файле. От этого зависит запуск команды
Для проверки подписи используется опция
--verify.Цифровая подпись может быть интегрирована в файл, а может содержаться в отдельном файле. От этого зависит запуск команды
gpg, если цифровая подпись интегрирована в файл, то достаточно указать опцию --verify, а затем проверяемый файл:gpg --verify test.php.gpgЕсли цифровая подпись отделена от файла, то после опции
--verify нужно указать два аргумента: вначале идёт файл с подписью, а затем подписанные данные:gpg --verify test.php.sig test.phpДля проверки подписи есть специальная программа gpgv, которая заменяет собой конструкцию
gpg --verify, то есть предыдущие команды можно записать так:gpgv test.php.gpgи
gpgv test.php.sig test.phpКак извлечь файл из подписанного файла GPG
После проверки подписи может возникнуть интересный вопрос — а как, собственно, использовать этот файл в
Чтобы получить подписанные данные нужно использовать опцию
В дополнении к данной опции нужно ещё использовать опцию
После проверки подписи может возникнуть интересный вопрос — а как, собственно, использовать этот файл в
.gpg формате? Чтобы получить подписанные данные нужно использовать опцию
-d, которая используется для расшифровки данных. В дополнении к данной опции нужно ещё использовать опцию
-o, после которой нужно указать имя файла, куда будут извлечены подписанные данные - обычный редирект вывода, может не подойти, поскольку для подписанного файла опцией -d не только извлекаются исходные данные, но и происходит проверка подписи и результаты проверки тоже выводятся на экран, то есть если вы будете использовать редирект вывода, то в создаваемый файл попадут и подписанные данные, и информация о проверке подписи.gpg -d -o test.php test.php.gpgСуществует несколько способов замерить время выполнения Bash-скрипта:
1. Использовать команду
1. Использовать команду
time, которая позволяет замерить реальное, пользовательское и системное время выполнения скрипта. Например:time ./my_noscript.sh2. В скрипте можно записать текущее время до и после выполнения основной части кода, а затем вычислить разницу. Для этого используют команду
date с опцией +%s, которая выводит количество секунд, прошедших с начала эпохи Unix. Например:start_time=$(date +%s)3. Использовать утилиту bash-builtin time, которая работает аналогично команде
# Запуск основного кода скрипта
end_time=$(date +%s)
elapsed_time=$(( end_time - start_time ))
echo "Время выполнения скрипта: $elapsed_time секунд"
time, но позволяет сохранить результаты замеров в файл. Например:/usr/bin/time -a -o my_noscript.log ./my_noscript.shЗдесь опция
-a указывает, что результаты замеров будут добавлены в файл-лог, а опция -o определяет имя файла-лога.