Для программного обеспечения, подобного APT , которому при нормальной работе требуется доступ практически ко всей системе, ограничение является проблематичным. Даже если вы запретите ему доступ к определенным частям системы, скорее всего, у злонамеренного распространителя будет более чем достаточно возможностей для обхода. Например, заменив библиотеку или просто двоичный файл, или добавив вредоносное изменение конфигурации, которое в конечном итоге будет использовать неограниченный root.
В зависимости от того, насколько сильно вы установите ограничения, некоторые сценарии установки могут сломаться.
Чтобы ограничить приложения и пользователей, вы можете написать политику AppArmor или SELinux. Какая политика будет больше поддерживаться, зависит от вашего дистрибутива :На основе Debian лучше поддерживается AppArmor, в то время как дистрибутивы на основе Fedora/RHEL включают SELinux по умолчанию.
И AppArmor, и SELinux работают с политиками белого списка , которые содержат правила, разрешающие (или запрещающие )определенные действия. Политики применяются к процессу в exec , аналогичным образом пользователи могут быть ограничены, когда политика применяется к их процессам в -in.Хорошо продуманную политику нельзя обойти (, если не учитывать ошибки ядра ). Ограниченный процесс, работающий от имени пользователя root (uid 0 ), ограничен настроенной политикой и не может изменить его, если это явно не разрешено политикой.
Язык политики AppArmor определяет правилоотказа , которое можно использовать для построения политики черного списка . Хорошим местом для начала работы с AppArmor являются справочные страницы AppArmor , вики и просмотр существующей конфигурации вашего дистрибутива в /etc/apparmor.d/
.
Множество материалов по администрированию и разработке SELinux представлено в SELinux wiki . Эталонная политика SELinux размещена на github.
Ну, имеющуюся максимальную емкость можно оценить в [Partition Size] * (1 - inode_size / inode_ratio - reserved-blocks-percentage)
. Итак, чтобы получить конкретную емкость, рассчитайте [Partition Size] = [Capacity] / (1 - inode_size / inode_ratio - reserved-blocks-percentage)
.. Общие значения см. в /etc/mke2fs.conf.