🏠 Домашнее задание
Условие домашнего задания
Среда выполнения
Работаем на сервере
Работаем на сервере
linux.itcareerhub.de
- Работаем на сервере
linux.itcareerhub.de - Создать скрипт
permission_checker.sh - Сделать его исполняемым
- Создать скрипт, который получит список прав на файлы внутри директории
/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: Понять задачу
Нам нужно:
- Пройтись по файлам в
/opt/ГРУППА - Для каждого файла проверить: заканчивается ли имя на
.sh - Если да — выполнить
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
- Откройте терминал в VS Code: Ctrl+`
- Подключитесь к серверу через SSH: расширение «Remote - SSH»
- Запустите скрипт через терминал:
./permission_checker.sh - Проверьте вывод — должны увидеть список файлов, получивших
+x