Лабы по UNIX / UNIX4
.doc
ЛАБОРАТОРНАЯ РАБОТА № 4 (время выполнения -- 2 часа)
Тема: ”Права доступа и защита файлов”
Наличие в ОС Unix множества пользователей с разными правами требует от системы присутствия механизмов разграничения прав доступа. Рассмотрим штатные средства разграничения прав доступа. В большинстве систем Unix используется матричная политика разграничения прав доступа.
1. Права доступа к файлам
Символ |
Цифра |
Описание |
r |
4 |
Пользователь имеет право открытия и чтения содержимого файла |
w |
2 |
Пользователь имеет право записи в файл |
x |
1 |
Пользователь имеет право запуска файла (программы, скрипта) |
- |
0 |
Пользователь не может прочесть, записать или запустить файл |
2. Права доступа к каталогам
Символ |
Цифра |
Описание |
r |
4 |
Пользователь имеет право просматривать список файлов в каталоге |
w |
2 |
Пользователь имеет право создавать или удалять файлы из каталога |
x |
1 |
Пользователь имеет право запуска файла (программы, скрипта) |
- |
0 |
Пользователь не может просматривать содержимое каталога, создавать или удалять файлы в каталоге |
3. Изменение прав доступа к файлам
команда |
Описание |
ls |
Вывод информации о файлах и каталогах |
chown |
Смена владельца файла |
chgrp |
Смена группы файла |
chmod |
Смена прав доступа |
Права доступа задаются для трех категорий пользователей:
-
владелей файла
-
группа, которой принадлежит файл
-
все остальные
Пример
ls –l /export/home/vova
-rwxrw-r-- 1 vova other 109056 Aug 03 15:27 my_file.txt
В приведенном примере владелец файла my_file.txt (пользователь vova) имеет права rwx (право на чтение, запись и исполнение), члены группы other имеют права rw- (права на чтение и запись), а все остальные пользователи имеют права r--(только на чтение)..
Изменение прав доступа может проводиться только владельцем файла (только для тех групп, которым принадлежит владелец) или суперпользователем.
Пример
ls –l /export/home/vova
-rwxrw-r-- 1 vova other 109056 Aug 03 15:27 my_file.txt
chmod 600 my_file.txt
ls –l /export/home/vova
-rw------- 1 vova other 109056 Aug 03 15:27 my_file.txt
4. Маскирование прав
Все вновь создаваемы обычные файлы в ОС Unix получают права доступа rw-, а каталоги – rwx. Можно изменить права, назначаемые вновь создаваемым файлам и каталогам, с помощью команды umask. Маска, назначаемая командой umask, вычитается из маски по умолчанию.
Команда umask без опций позволяет узнать текущее значение маски.
Пример
Маска по умолчанию rw- rw- rw- 666
Значение umask --- -w- -w- 022
Права на вновь созданный файл rw- r-- r-- 644
4. Дополнительные атрибуты файлов
Атрибут |
Описание |
Setuid bit |
Бит смены эффективного идентификатора пользователя. При запуске исполняемого файла с установленным setuid bit программа будет выполняться с правами того пользователя, которому принадлежит файл |
Setgid bit |
Бит смены эффективного идентификатора группы. При запуске исполняемого файла с установленным setgid bit программа будет выполняться с правами той группы, которой принадлежит файл |
Sticky bit |
“Липкий” бит. Если на каталог установлен sticky bit, то файлы в каталоге может удалить или переименовать только тот пользователь, кто имеет право на запись в каталог и является одним из:
|
Дополнительные атрибуты устанавливаются с помощью команды chmod.
5. Списки управления доступом
Списки управления доступом (Access Control List) позволяют расширить модель разграничения прав доступа. С помощью ACL можно устанавливать отдельные права доступа для любого пользователя и для любой группы.
Просмотр прав ACL – команда getfacl, установка – команда setfacl.
УПРАЖНЕНИЯ
1. Удалите полностью содержимое каталога /work
2. Определите, какие права доступа определены для файла /usr/bin/su
3. Определите, какие права доступа определены для файла /etc/passwd
4. Определите, какие права доступа определены для файла /etc/shadow
5. Создайте текстовый файл /work/file01, который может читать и изменять только пользователи, принадлежащие группе staff.
6. Создайте текстовый файл /work/file02, который не могут читать и изменять пользователи, принадлежащие группе staff, а все остальные могут.
7. Создайте текстовый файл /work/file03, который могут читать и изменять все пользователи системы.
8. Создайте каталог /work/dir01, в котором любой пользователь может создавать, удалять и запускать файлы.
9. Создайте каталог /work/dir02, в который пользователи группы staff не могут входить, а все остальные могут.
10. Установите значение umask так, чтобы файлы создавались с правами 600, а каталоги – 700.
11. Установите значение umask так, чтобы файлы создавались с правами 640, а каталоги – 740
12. Объясните, для чего на программу passwd установлены атрибуты setuid bit и setgid bit.
13. Определите все программы в каталоге /usr/bin, на которые установлены атрибуты setuid bit и setgid bit
14. Объясните, для чего на каталог /tmp установлен атрибут sticky bit.
15. Установите права на новый файл /work/file05 таким образом, чтобы у членов группы noaccess не было никаких прав на файл, у группы staff были бы все права, а у группы other – только права на чтение.
16. Уберите ограничение на доступ к файлу /work/file05 для группы noaccess.