Добавил:
ИВТ Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

lab 7

.docx
Скачиваний:
25
Добавлен:
16.11.2023
Размер:
133.73 Кб
Скачать

Лабораторная работа №7

Дискреционное управление доступом

Практическая часть

Задание 1.

Поиск файлов с заданными правами доступа:

  1. Найдите все регулярные (обычные, regular) файлы, у которых установлены биты suid и/или sgid. Во время поиска осуществляйте проверку, что найдены именно требуемые файлы.

find / -type f \( -perm -4000 -o -perm -2000 \) -exec ls -l {} \;

/: Это корневой каталог, откуда начнется поиск. Вы можете изменить путь по вашему усмотрению.

-type f: Указывает find искать только регулярные файлы.

\( -perm -4000 -o -perm -2000 \): Эта часть определит условия поиска. -perm -4000 ищет файлы с установленным битом SUID, а -perm -2000 ищет файлы с установленным битом SGID. Опция -o выполняет логическое ИЛИ между двумя условиями.

-exec ls -l {} \;: Позволяет выполнить команду ls -l для отображения подробной информации о найденных файлах.

  1. Сохраните результат поиска (абсолютные имена файлов) в файл suid_sgid.txt

find / -type f \( -perm -4000 -o -perm -2000 \) -exec ls -l {} \; > suid_sgid.txt

nano (имя файла)

  1. В каких каталогах больше всего файлов с установленными suid и/или sgid битами?

find / -type f \( -perm -4000 -o -perm -2000 \) -exec dirname {} \; | sort | uniq -c | sort -nr

find / -type f \( -perm -4000 -o -perm -2000 \) -exec dirname {} \;: Эта часть ищет регулярные файлы с установленными битами SUID и/или SGID и использует dirname для вывода их каталогов.

sort: Сортирует результаты.

uniq -c: Подсчитывает уникальные значения (количество файлов) в каждом каталоге.

sort -nr: Снова сортирует результаты по убыванию количества файлов.

| (пайп, или канал):

Перенаправляет вывод предыдущей команды на вход следующей команды.

  1. Сколько файлов имеют установленный бит suid?

find / -type f -perm -4000 | wc -l

  1. Сколько файлов имеют установленный бит sgid?

find / -type f -perm -2000 | wc -l

  1. У скольких файлов установлен и suid и sgid биты?

find / -type f -perm -4000 -perm -2000 | wc -l

Задание 2.

Изменение дискреционных прав доступа:

  1. Задайте значение маски режима доступа (пользовательской маски) так, чтобы права были только у владельца

umask 077

Эта команда устанавливает umask в 077, что означает, что права доступа будут только у владельца файла, а группа и остальные не будут иметь прав на чтение, запись и выполнение.

  1. В своем домашнем каталоге создайте ветку каталогов

tmp1/tmp2/tmp3/tmp4/tmp5

mkdir -p ~/tmp1/tmp2/tmp3/tmp4/tmp5

  1. В каталогах tmp2 и tmp4 создайте файлы с именами file2 и file4 соответственно.

touch ~/tmp1/tmp2/file2

touch ~/tmp1/tmp4/file4

  1. Проверьте, какие права доступа установлены на созданные файлы и каталоги.

ls -l ~/tmp1/tmp2 ~/tmp1/tmp4

  1. Используя команду find, измените права доступа на все каталоги начиная с tmp2 так, чтобы группа-владелец имела все права доступа, а все остальные могли бы только просматривать содержимое каталогов. Права доступа на файлы file2 и file4 должны остаться прежними.

find ~/tmp1/tmp2 -type d -exec chmod 750 {} \;

Эта команда ищет все каталоги (-type d) внутри tmp1/tmp2 и использует chmod для установки прав доступа 750. Здесь:

7 означает права доступа для владельца (пользователя): чтение (4) + запись (2) + выполнение (1),

5 означает права доступа для группы: чтение (4) + выполнение (1),

0 означает права доступа для остальных: никаких прав.

Задание 3.

Создание общих каталогов для пользователей с использованием общей группы и установкой бита sgid на каталог

  1. Создайте каталог /home/Dir1.

sudo mkdir /home/Dir1

  1. Создайте учетные записи user1 и user2 (если они не были созданы ранее).

  1. Создайте группу shtat. Поместите пользователей user1 и user2 в группу shtat (вторичная группа)

sudo groupadd shtat

sudo usermod -aG shtat user1

sudo usermod -aG shtat user2

араметр -aG означает "append to group" и "add supplementary groups", что позволяет добавить пользователя в группу, не заменяя его текущие группы.

  1. Сделайте так, чтобы участники группы shtat (пользователи user1 и user2) могли создавать и редактировать файлы в каталоге /home/Dir1. При этом остальные пользователи не должны иметь доступ к файлам в /home/Dir1.

меняю владельца и группу

sudo chown :shtat /home/Dir1

Эта команда устанавливает группу shtat в качестве группы-владельца для каталога /home/Dir1.

Установите права доступа так, чтобы группа shtat имела полные права, а остальные пользователи не имели никаких прав:

sudo chmod 770 /home/Dir1

Эта команда устанавливает права на каталог /home/Dir1 следующим образом:

Владелец (user): чтение, запись, выполнение (4+2+1 = 7),

Группа (shtat): чтение, запись, выполнение (4+2+1 = 7),

Остальные: никаких прав (0).

  1. С помощью PAM-модуля pam_umask.so задать для учетных записей user1 и user2 маски режима доступа (пользовательские маски) так, чтобы группа-владелец имела все права на создаваемые файлы.

Отредактируйте файл /etc/pam.d/common-session:

sudo nano /etc/pam.d/common-session

Добавьте следующую строку в конец файла:

session optional pam_umask.so user1=002,user2=002

Эта строка устанавливает маску режима доступа для user1 и user2 в 002, что означает, что группа-владелец будет иметь все права.

Сохранить и закрыть редактор

Повторить те же шаги для файла /etc/pam.d/common-session-noninteractive:

  1. Зайти под учетной записью user1 и создать файл project1.txt в каталоге /home/Dir1. Записать в этот файл текущую дату.

su - user1

cd /home/Dir1 - перейти в каталог

echo $(date) > project1.txt

Эта команда создаст файл project1.txt и запишет в него текущую дату и время.

  1. Зайти под учетной записью user2 и изменить файл /home/Dir1/project1.txt, добавив информацию о текущей версии Astra Linux.

su - user2

cd /home/Dir1

nano project1.txt

Добавьте информацию о текущей версии Astra Linux в файл и сохраните изменения.

Задание 4.

Создание общих каталогов для пользователей с использованием файловых списков доступа

  1. Создайте каталог /home/Dir2

sudo mkdir /home/Dir2

  1. С помощью пользовательских списков доступа сделайте так, чтобы пользователи user1 и user2 могли создавать/удалять файлы и каталоги внутри /home/Dir2, а также изменять содержимое файлов. При этом, никто другой не может видеть содержимое внутри общего каталога.

sudo chmod 770 /home/Dir2 (права доступа)

sudo setfacl -m u:user1:rwx,u:user2:rwx /home/Dir2

Эта команда устанавливает ACL для user1 и user2, предоставляя им полные права (чтение, запись, выполнение) внутри /home/Dir2.

-m: Этот флаг указывает, что вы хотите изменить (modify) ACL. Вы можете использовать этот флаг вместе с setfacl для добавления или изменения прав доступа.

u:user1:rwx,u:user2:rwx: Это определяет ACL для пользователей user1 и user2. Здесь:

u:user1:rwx устанавливает права (чтение, запись, выполнение) для user1.

u:user2:rwx устанавливает права (чтение, запись, выполнение) для user2.

/home/Dir2: Это путь к файлу или каталогу, для которого вы устанавливаете ACL.

sudo setfacl -m o::--- /home/Dir2

Эта команда устанавливает права для остальных (Others) в ---, что означает отсутствие прав на чтение, запись и выполнение.

  1. Зайти под учетной записью user1 и создать файл project2.txt в каталог /home/Dir2. Записать в этот файл дату и время последней загрузки системы.

sudo -u user1 -i

cd /home/Dir2

echo "Last system boot: $(who -b)" > project2.txt

Эта команда использует who -b, чтобы получить информацию о последней загрузке системы, и записывает эту информацию в файл project2.txt.

  1. Зайти под учетной записью user2 и изменить файл /home/Dir2/project2.txt, добавив информацию о кодовом имени данного выпуска Astra Linux.

su - user2

cd /home/Dir2

nano project2.txt

Добавьте информацию о кодовом имени выпуска Astra Linux в файл и сохраните изменения.

Закройте текстовый редактор.

Задание 5.

Использование атрибута файла a (append)

  1. Создайте в домашнем каталоге файл my.log.

touch ~/my.log

  1. Установите на файл my.log атрибут a (append).

chmod +a <ваше_имя> my.log

  1. Попробуйте: удалить файл, изменить файл в редакторе, добавить информацию в конец файла. Действия делайте как под своей учетной записью, так и под учетной записью root.

rm ~/my.log

nano ~/my.log

echo "Новая информация" >> ~/my.log

под root

sudo rm ~/my.log

sudo nano ~/my.log

Вопросы для проверки

  1. Какая команда разрешит выполнять файл script1 всем пользователям?

  2. У каталога установлены права rwx-sx--x. Переведите права в числовую форму.

  3. Сделайте так, чтобы пользователь user1 мог изменять содержимое новых файлов в каталоге Dir.

Соседние файлы в предмете Операционные системы