Домашнее задание студента курса “Старт в DevOps: системное администрирование для начинающих”
Linux: первые шаги
Домашнее задание №1 - Создание иерархии файлов про книги и фильмы
Что нужно сделать
-
Создайте в своей домашней директории папки Movies и Books.
-
Создайте пять файлов в директории Movies с названиями любимых фильмов (если название состоит из нескольких слов, разделяйте их символом нижнего подчеркивания “_”, а не пробелом).
-
Создайте три файла в директории Books с названиями любимых книг.
-
Создайте в директории Books ещё одну директорию. Назовите директорию также, как называется серия книг. Создайте в директории файлы с такими же названиями, как названия книг в этой серии
Не будем останавливаться на этом задании, потому что с ним легко можно справиться используя команды mkdir и touch.
Ответ:
Домашнее задание №2 - Работа с правами на файлы и папки
Что нужно сделать
-
Создайте папку, в которой только ваш пользователь сможет создавать и удалять файлы, а остальные пользователи — только просматривать список файлов.
-
Создайте темный каталог. Покажите, что получить список файлов нельзя, но можно получить доступ к файлу, зная его имя. Сделайте скриншот того, что получилось.
-
Создайте папку, доступ на запись в которую есть только у суперпользователя, а доступ на чтение — у всех. Попробуйте создать в ней файл. Теперь попробуйте создать файл с правами суперпользователя (использовав команду sudo). Сделайте скриншот того, что получилось.
-
Создайте файл, отредактировать который сможет только суперпользователь, а прочитать — любой.
-
Создайте файл, полный доступ к которому имеет любой пользователь в системе. Сделайте скриншот того, что получилось.
Ответ:
Распишем подробно каждое действие:
Задача №1
создаём папку
mkdir first_catalog
наделяем полными правами пользователя и предоставляем права “чтение” для остальных
chmod u+rwx,o=r first_catalog
проверяем статус директории
ls -la first_catalog
Задача №2
Создаём каталог
mkdir black_hole
Меняем его права так, что никто не имеет доступа к “чтению”, но имеет к “исполнению”
chmod a-r+x black_hole
Проверяем что мы не имеем разрешения на ознакомление с файлами
ls black_hole
Вывод после выполнения этой команды:
ls: cannot open directory 'black_hole': Permission denied
Создаём файл “иголка” в нашем тёмном каталоге
touch black_hole/needle
Проверяем доступ к файлу, зная его имя
ls black_hole/needle
Вывод после выполнения этой команды:
black_hole/needle
Задача №3
Cоздаём супер-директорию обычной командой
mkdir super_puper
Меняем права директории так, чтобы никто не имел права на “запись” и “выполнение”, но добавляем остальным пользователям право “чтения”. Так как мы не можем ограничить пользователя root, то команда применится ко всем сущностям, кроме него.
chmod a-wx,o=r super_puper
Пытаемся создать файл обычным способом внутри супер-директории
touch super_puper/super_1
Получаем вывод об отсутствии доступа:
touch: cannot touch 'super_puper/super_1': Permission denied
Создаём тот же самый файл с привилегией супер-пользователя
sudo touch super_puper/super_1
Он запрашивает пароль:
[sudo] password for parallels:
После успешного ввода пароля запрашиваем список файлов внутри супер-директории
ls super_puper
Получаем в конце списка созданный нами файл. Первый вывод в списке касается самой папки super_puper, информация о которой для нас не доступна:
ls: cannot access 'super_puper/super_1': Permission denied
super_1
Задача №4
Создаём файл в домашней директории
touch root_file
Убираем у всех права на “запись” и “выполнение”, оставляем на “чтение”
chmod a-wx,o=r root_file
Проверяем статус преобразованного файла
ls -l root_file
Задача №5
Создаём файл в домашней директории
touch anybody_file
Наделяем всех правами “чтения”, “записи”, “выполнения”
chmod a+rwx anybody_file
Проверяем статус преобразованного файла
ls -l anybody_file