🏠 Домашнее задание

К оглавлению урока

Условие домашнего задания

Среда выполнения
Работаем на сервере linux.itcareerhub.de
  1. Работаем на сервере linux.itcareerhub.de
  2. Создать скрипт permission_checker.sh
  3. Сделать его исполняемым
  4. Создать скрипт, который получит список прав на файлы внутри директории /opt/ВАШАГРУППА, и если среди них есть файлы .sh, то добавит им права на исполнение

Подготовка окружения

# Подключение к серверу
ssh user@linux.itcareerhub.de

# Создать скрипт
nano permission_checker.sh
# или
vi permission_checker.sh

# Сделать исполняемым
chmod +x permission_checker.sh

# Проверить права
ls -la permission_checker.sh

Пошаговое решение

Шаг 1: Понять задачу

Нам нужно:

  1. Пройтись по файлам в /opt/ГРУППА
  2. Для каждого файла проверить: заканчивается ли имя на .sh
  3. Если да — выполнить chmod +x ФАЙЛ

Шаг 2: Написать скрипт

# permission_checker.sh
#!/bin/bash
# Скрипт проверяет файлы в /opt/ГРУППА и добавляет chmod +x для .sh файлов

GROUP_DIR="/opt/YOURGROUP"    # замените YOURGROUP на вашу группу

# Проверяем, существует ли директория
if [ ! -d "$GROUP_DIR" ]; then
    echo "Error: directory $GROUP_DIR not found"
    exit 1
fi

echo "Checking files in $GROUP_DIR ..."

# Перебираем все файлы в директории
for FILE in "$GROUP_DIR"/*
do
    # Проверяем, является ли элемент файлом (не директорией)
    if [ -f "$FILE" ]; then
        # Проверяем расширение .sh
        if [[ "$FILE" == *.sh ]]; then
            echo "Adding execute permission to: $FILE"
            chmod +x "$FILE"
        fi
    fi
done

echo "Done!"

Шаг 3: Запустить и проверить

# Запустить скрипт
./permission_checker.sh

# Проверить результат — файлы .sh должны иметь x в правах
ls -la /opt/YOURGROUP/

Объяснение ключевых строк

  • for FILE in "$GROUP_DIR"/* — перебираем все элементы в директории
  • if [ -f "$FILE" ] — проверяем, что это файл (не директория)
  • if [[ "$FILE" == *.sh ]] — проверяем расширение через pattern matching; двойные скобки [[ ]] поддерживают glob-шаблоны
  • chmod +x "$FILE" — добавляем право исполнения

Проверка в VS Code

  1. Откройте терминал в VS Code: Ctrl+`
  2. Подключитесь к серверу через SSH: расширение «Remote - SSH»
  3. Запустите скрипт через терминал: ./permission_checker.sh
  4. Проверьте вывод — должны увидеть список файлов, получивших +x

Связь с теорией