Процессы и права доступа
Немного про процессы
повторение: каналы, подстановка
- Действующий субъект системы — процесс
права доступа процесса к объектам файловой системы
- PID
- ps с ключами
+ 2 набора ключей (ps axw vs ps -ef)
порождение процессов (fork()+exec()), PID 1
ps -ejH --forest, pstree
сигналы, kill
… & и kill
top
+ команда k
отступление: посылка сигналов с клавиатуры в терминале, фоновые процессы
^C
& и стандартный ввод, команда fg; ^Z
stty -a
Субъект-субъектная модель прав доступа
RWX (т. н. атрибуты)
chmod
запустить незапускаемый файл, прочитать нечитаемый
ls -l (почему rwxrwxrwx — потом)
- UID процесса и файла
- множественный субъект — GID (любые UID могут быть членами любых GID)
- наследование окружения ⇒ наследование UID и GID
VAR=qqq ps -esww | grep qqq
- rwxrwxrwx — хозяин, группа, остальные
- /etc/passwd, /etc/group
- Понятие первичной группы
chmod и 755
несколько примеров
Доверенный субъект: root
чтение нечитаемого, запись в незаписываемый и запуск незапускаемого из-под root
- недостатки модели с доверенным субъектом
chown и chgrp
- Каталоги: R,W,X
пример +r -x и +x -r
- удаление чужого файла и 't'
пример
- недостатки С-С модели
- неполнота (например, атрибута три, а триплет для группы только один ⇒ нет возможность сделать одну группу только на чтение, другую только на запись)
- жёсткость ⇒ SUID/SGID
- механизм работы и потенциальная опасность
- (если будет время — effectve UID/GID)
- (кстати, SGID для каталогов)
- механизм работы и потенциальная опасность
- пример: TCB как вариант SGID directory traversal
на примере passwd и /etc/tcb
(упомянуть) расширенные атрибуты: xattr
(упомянуть) capabilities: более мелкое деление прав, setcap
на примере /bin/ping: снять suid, выставить CAP_NET_RAW
Субъект-объектная модель прав доступа
Сколько успеется, в назывном порядке
acl: идея — таблица (в более общем виде — формулы), что конкретный пользователь может делать с конкретным объектом
Приложение: что ещё почитать по теме
Действующий субъект системы — процесс
отступление: посылка сигналов с клавиатуры в терминале, фоновые процессы
Субъект-субъектная модель прав доступа
- euid, fsuid
- наследование окружения ⇒ наследование UID и GID
chown и chgrp
Субъект-объектная модель прав доступа
Д/З
- Понять как работает SGID directory traversal
- ... ?