AppArmour обычно считается более простым, чем SELinux. SELinux довольно сложен и может использоваться даже в военных приложениях, в то время как AppArmour, как правило, проще. SELinux работает на уровне i-узла (то есть ограничения применяются так же, как разрешения ACL или UNIX - с другой стороны), в то время как AppArmour применяется на уровне пути (т. Е. Вы указываете доступ на основе пути, поэтому при изменении пути он может не применяться ). AppArmour также может защищать подпроцессы (например, только mod_php), но я почему-то скептически отношусь к его реальному использованию. AppArmour, похоже, нашел свое отражение в основном ядре (оно находится в -mm IIRC).
Я не знаю много о SMACK, но это выглядит как упрощенный SELinux из описания. Существует также RSBAC, если вы хотите посмотреть на него.
У chroot ограниченная область применения, и я не думаю, что он будет полезен в среде рабочего стола (его можно использовать для отделения демонов от доступа ко всей системе, например, к демону DNS).
Конечно, стоит применить «универсальную» защиту, такую как PaX, -fstack-protector и т. Д. Chroot, который вы можете использовать, когда ваш дистрибутив поддерживает, так же как и AppArmour / SELinux. Я полагаю, что SELinux лучше подходит для областей с высоким уровнем безопасности (он намного лучше контролирует систему), а AppArmour лучше для простого усиления безопасности.
В общем, я бы не стал слишком сильно укреплять общий рабочий стол, за исключением отключения неиспользуемых служб, регулярного обновления и т. Д., Если вы не работаете в высокозащищенной области. Если вы все равно хотите обезопасить себя, я бы использовал то, что поддерживает ваш дистрибутив. Многие из них, чтобы быть эффективными, нуждаются в поддержке приложений (для бывших инструментов компиляции для поддержки атрибутов, написанных правил), поэтому я бы посоветовал использовать то, что поддерживает ваш дистрибутив.