Bash-скрипты. Урок 4 (специальный выпуск)


Всем привет!
Тут предыдущий урок
Поехали)

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

#!/bin/bash
#Проверяем наличие передаваемого параметра
if (($# < 1))
then
echo "Usage: $0 {directory}";
echo "Example: $0 ./";
exit
fi
directory=$1
echo "-------------------------------------------"
echo "Рекурсивно читаем права заданной директории"
echo "(файлы, каталоги, подкаталоги)"
echo "ls -R -l $directory"
ls -R -l $directory
echo "-------------------------------------------"
echo "Рекурсивно убираем право на чтение у всех групп"
echo "(файлы, каталоги, подкаталоги)"
echo "chmod -R a-r $directory"
chmod -R a-r $directory
echo "-------------------------------------------"
echo "Рекурсивно читаем права заданной директории после удаления прав на чтение"
echo "(файлы, каталоги, подкаталоги)"
echo "ls -R -l $directory"
ls -R -l $directory
echo "-------------------------------------------"
echo "Рекурсивно добавляем право на выполнение всем каталогам и подкаталогам"
echo "(каталоги, подкаталоги)"
echo "chmod -R a+X $directory"
chmod -R a+X $directory
echo "-------------------------------------------"
echo "Рекурсивно читаем права заданной директории после добавления права на выполнение"
echo "(каталоги, подкаталоги)"
echo "ls -R -l $directory"
ls -R -l $directory
echo "-------------------------------------------"

Пояснение:
1. Полномочия

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

2. Команда chmod
Команда предназначена для изменения прав доступа к файлам и каталогам

Есть три группы прав
u – владелец файла
g – группа файла
o – другие пользователи
a – все группы

На каждую группу три вида прав
r – чтение
w – запись
x – выполнение (файлы и каталоги), X – выполнение только для каталогов

“+” – включить, “-” – отключить, “=” – присвоить

chmod -R a-r ./
-R – рекурсивное изменение прав каталогов, подкаталогов и их файлов
a-r – у всех групп убрать чтение

chmod -R a+X ./
a+X – всем группам добавить исполнение но только для каталогов и их подкаталогов

3. Анализ
Вывод нашего скрипта, картинка кликабельна

Блок 1, отметки красным – право чтение есть у всех.
Блок 2, отметки красным – право чтения у всех удалено.
Блок 2, отметки синим – право выполнения нет у всех.
Блок 3, отметки синим – право выполнения есть только у каталога.

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