http://uneex.org
Процессы и права доступа - http://uneex.org/LecturesCMC/LinuxSof...
Немного про процессы
повторение: каналы, подстановка
Действующий субъект системы — процесс
права доступа процесса к объектам файловой системы
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: идея — таблица (в более общем виде — формулы), что конкретный пользователь может делать с конкретным объектом
LSM: yama, SELinux, AppArmor, SMACK, ...
keyrings
Приложение: что ещё почитать по теме
Действующий субъект системы — процесс
credentials
getpid, gettid, getpgid
сигналы, kill, tkill
отступление: посылка сигналов с клавиатуры в терминале, фоновые процессы
ioctl_tty, tty, pts, tcgetpgrp, setpgid, setsid, pty
chmod
Субъект-субъектная модель прав доступа
euid, fsuid
наследование окружения ⇒ наследование UID и GID
clone, pid_namespaces
/etc/passwd, /etc/group
chown и chgrp
umask
Субъект-объектная модель прав доступа
Мнение русскоязычной Википедии по вопросу