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, отметки синим — право выполнения есть только у каталога.

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