- •Введение
- •Лабораторная работа 1.
- •Регистрация пользователя в системе
- •Выход из системы
- •Выполнение простых команд
- •Группирование команд
- •Задание для самостоятельной работы
- •Контрольные вопросы
- •Задание для самостоятельной работы
- •Контрольные вопросы
- •Задание для самостоятельной работы
- •Контрольные вопросы
- •Задание для самостоятельной работы
- •Контрольные вопросы
- •Литература
- •5.3. Задание для самостоятельной работы
- •5.4. Контрольные вопросы
- •Задание для самостоятельной работы
- •Контрольные вопросы
- •Задание для самостоятельной работы
- •Формат файла /etc/passwd
- •Формат файла /etc/shadow
- •Формат файла /etc/group
- •Создание нового пользователя
- •Переключение между пользователями
- •Файлы инициализации пользователей
- •Файлы, регламентирующие работу пользователей
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •9.3. Права доступа к каталогам
- •9.4. Смена прав доступа на файлы
- •9.5. Маска на вновь создаваемые файлы
- •9.6. Дополнительные атрибуты файла
- •9.7. Списки управления доступом
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •10.3. Метасимволы или шаблоны
- •10.4. История команд
- •10.5. Псевдонимы
- •10.6. Перенаправление ввода и вывода
- •10.7. Конвейеры
- •10.8. Приглашение ко вводу
- •10.9. Сценарии оболочки
- •10.10. Задания для самостоятельной работы
- •10.11. Контрольные вопросы
- •11.3. Системный вызов open()
- •11.4. Системный вызов read()
- •11.5. Системный вызов write()
- •11.6. Системный вызов lseek()
- •11.7. Системный вызов close()
- •11.8. Задания для самостоятельной работы
- •11.9. Контрольные вопросы
- •12.3. Системный вызов fork
- •12.4. Системный вызов exit
- •12.5. Системный вызов wait
- •12.6. Системный вызов exec
- •12.7. Системные вызовы наследования пользовательских дескрипторов файла
- •12.8. Задания для самостоятельной работы
- •12.9. Контрольные вопросы
- •13.3. Системный вызов signal
- •13.4. Системный вызов pause
- •13.5. Системный вызов alarm
- •13.6. Управление непредусмотренными событиями
- •13.7. Неименованные каналы
- •13.8. Именованные каналы
- •13.9. Задания для самостоятельной работы
- •13.10. Контрольные вопросы
- •Литература
- •Заключение
- •Учебное издание
- •Системное программирование Лабораторный практикум
9.5. Маска на вновь создаваемые файлы
На вновь создаваемые файлы в ОС Linux накладывается специальная маска (команда umask), которая позволяет маскировать выборочные права доступа.
Для нового файла права вычисляются по следующему алгоритму:
rw-rw-rw- (666) – маска по умолчанию
----w--w- (022) – значение umask
rw-r—-r-- (644) – получаемое значение прав доступа
Маска, назначаемая командой umask, вычитается из маски по умолчанию.
Для новой директории права вычисляются по следующему алгоритму:
rwxrwxrwx (777) – маска по умолчанию
----w--w- (022) – значение umask
rwxr—xr-x (755) – получаемое значение прав доступа
Пример. $umask 000
$touch file
$ls –l file
-rw-rw-rw- 1 stud other 0 Aug 03 15:27 file
$umask 777
$touch file1
$ls –l file1
---------- 1 stud other 0 Aug 03 15:29 file1
9.6. Дополнительные атрибуты файла
Дополнительные атрибуты файлов представлены в таблице 9.4.
Таблица 9.4
Дополнительные атрибуты файлов
Атрибут |
Описание |
Setuid bit |
Бит смены эффективного идентификатора пользователя. При запуске исполняемого файла с установленным Setuid bit. Программа будет выполняться с правами того пользователя, которому принадлежит файл. |
Setgid bit |
Бит смены эффективного идентификатора группы. При запуске исполняемого файла с установленным Setgid bit программа будет выполняться с правами той группы, которой принадлежит файл. |
Sticky bit |
“Липкий” бит. Если на каталог установлен Sticky bit, то файлы в каталоге может удалить или переименовать только тот пользователь, кто имеет право на запись в каталог и является одним из: владелец этого файла; владелец вышележащего каталога; суперпользователь. |
Пример. $ls –l /usr/bin/passwd
-r-sr-sr-x 3 root sys 101744 Jan 06 2011 /usr/bin/passwd
В приведенном примере, в маске прав доступа первый символ “s” показывает, что на программу passwd установлен атрибут Setuid bit. Второй символ “s” указывает на наличие Setgid bit.
Дополнительные атрибуты устанавливаются с помощью команды chmod, но вместо трех цифр устанавливающих права доступа, используется четыре цифры.
Пример. $chmod 6755 /usr/bin/sysutil
$ls –l /usr/bin/sysutil
-rwsrw-sr-x 3 root sys 902387 Feb 12 2011 /usr/bin/sysutil
9.7. Списки управления доступом
Списки управления доступом (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.