Скрипты Bash для организации папок и генерации паролей в Linux

Скрипты Bash для организации папок и генерации паролей в Linux

Рубрики:

Bash, Linux

Метки:

Bash, linux

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

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

Содержание:

  1. Сценарий Bash для организации каталогов в Linux
    1. Организация каталога
    2. Переименование объектов в файловой системе
    3. Поиск объектов в файловой системе
  2. Сценарий Bash для создания паролей
  3. Выводы

Сценарий Bash для организации каталогов в Linux

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

Давайте напишем скрипт Bash, в задачи которого входит:

  • переименование файлов;
  • поиск файлов;
  • организация каталогов.

Код сценария Bash для выполнения этих задач представлен ниже:

 

filesystem script

Читайте также: Использование оператора case в скриптах Bash.

Подробнее разберем код:

  1. echo "Утилита для управления файлами" и последующие строки с echo — команды, которые выводят текст на экран, представляя пользователю меню утилиты и варианты операций.
  2. read -p "Введите ваш выбор: " choice — команда, которая считывает ввод пользователя, сохраняя его в переменной choice.
  3. case $choice in ... esac — конструкция оператора case, позволяющая выбрать соответствующую ветку кода в зависимости от значения переменной choice.
  4. Внутри каждой ветки case:
    • 1), 2), 3), 4) — метки, указывающие на выбор (опцию) пользователя;
    • read -p ... — строки, которые считывают ввод пользователя, если он выбирает определенную операцию;
    • mv ... — команда mv используется для перемещения (опция 3) или переименования (опция 1) файлов;
    • if [ -e "$filename" ]; then ... fi — конструкция if-else, которая ищет файл (опция 2) с помощью оператора -e (он возвращает истину, если файл существует);
    • cd ... — команда для перехода в каталог, который пользователь выбирает для организации (опция 3);
    • mkdir -p ... — утилита для создания папок (в данном случае, она используется для создания директорий Images, Documents и Videos внутри указанного каталога);
    • echo "..." — команды, которые выводят сообщения об успешном выполнении операций.
  5. exit — команда, которая завершает выполнение скрипта.
  6. *) — метка оператора case для случая, когда пользователь вводит что-то кроме 1, 2, 3 или 4. В этом случае выводится сообщение о неверном выборе.

Посмотрим, как работает данный скрипт.

Организация каталога

Допустим, в нашей ОС Linux есть папка /home/user/123. Выведем на экран ее содержимое с помощью команды ls -l:

 

ls files

На скриншоте выше видно, что в каталоге есть файлы форматов *.jpg, *.pdf и *.mp4. С помощью показанного скрипта можно организовать их в папки Images, Documents и Videos. Для этого:

  • запустим скрипт;
  • выберем опцию 3;
  • введем путь к каталогу /home/user/123.

organize folder

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

Переименование объектов в файловой системе

Далее попробуем переименовать каталог /home/user/123 с помощью нашего скрипта. Чтобы это сделать, выполним следующие действия:

  • запустим скрипт;
  • выберем опцию 1;
  • введем текущее название каталога — /home/user/123;
  • введем новое название каталога — /home/user/myfolder.

Читайте также: 15 примеров команды ls в Linux.

rename folder

На скриншоте видно, что папка /home/user/123 получила новое указанное название.

Поиск объектов в файловой системе

Наконец, давайте попробуем найти в файловой системе каталоги /home/user/123 и /home/user/myfolder. Для этого:

  • запустим скрипт;
  • выберем опцию 2;
  • введем путь к каталогу для поиска.

file search

Как показано на скриншоте, скрипт не смог найти папку /home/user/123, но нашел /home/user/myfolder. Это также подтверждает, что мы ранее успешно переименовали директорию.

Сценарий Bash для создания паролей

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

Взломщики паролей часто используют атаки перебора (или метод «грубой силы», от англ. brute force) или словарные атаки (от англ. dictionary attack), пытаясь угадать пароли на основе распространенных слов или паттернов. Сложные пароли существенно усложняют этот процесс.

Ниже представлен код скрипта, который позволяет генерировать сложные пароли:

 

password script

Читайте также: Как создать, зашифровать, расшифровать пароли в Linux.

Этот скрипт на языке Bash генерирует случайный пароль на основе указанных пользователем критериев:

  1. read -p "Введите длину пароля: " length — команда, которая запрашивает у пользователя желаемую длину пароля и сохраняет введенное значение в переменную length.
  2. read -p "Включить заглавные буквы? (y/n): " uppercase и последующие строки с read -p — команды, которые запрашивают у пользователя включение заглавных или строчных букв, цифр, специальных символов в пароль и сохраняют введенные значения в соответствующие переменные.
  3. chars="..." — переменная, содержащая все символы, которые будут использоваться для генерации пароля в зависимости от выбора пользователя.
  4. Операторы if проверяют ввод пользователя для каждого типа символов и добавляют соответствующий набор знаков в значение переменной chars, если пользователь выбирает y.
  5. password=$(tr -dc "$chars" < /dev/urandom | head -c "$length") — конструкция команд, которая генерирует случайный пароль, используя утилиты:
    1. tr для удаления символов, не входящих в указанный набор ($chars) из вывода /dev/urandom (файла, который предоставляет случайные данные);
    2. head для ограничения длины пароля ($length).
  6. echo "Сгенерированный пароль: $password" — выводит на экран значение переменной password, в которой хранится созданный пароль.

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

  1. Первый:
    • длина 10 символов;
    • включает только заглавные буквы и цифры.
  2. Второй:
    • длина 15 символов;
    • включает строчные и заглавные буквы, цифры и специальные символы.

password script run

На скриншоте выше видно, что мы получили два пароля с заданными параметрами.

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

Выводы

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

Спасибо за уделенное время на прочтение статьи!

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Ciscoкурсы по кибербезопасности,  полный курс по кибербезопасности от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!

Спешите подать заявку! Группы стартуют 25 января, 26 февраля, 22 марта, 26 апреля, 24 мая, 21 июня, 26 июля, 23 августа, 20 сентября, 25 октября, 22 ноября, 20 декабря.
Что Вы получите?
  • Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
  • Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проведем вечерние онлайн-лекции на нашей платформе.
  • Согласуем с вами удобное время для практик.
  • Если хотите индивидуальный график — обсудим и реализуем.
  • Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
  • Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
А еще поможем Вам:
  • отредактировать или создать с нуля резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco, Linux LPI, кибербезопасность, DevOps / DevNet, Python, подайте заявку или получите бесплатную консультацию.

Рубрики:

Bash, Linux

Метки:

Bash, linux

Больше похожих постов

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

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

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


Поиск по сайту
Лучшее
Популярное
Рубрики