AppArmour jest zwykle uważany za prostszy niż SELinux. SELinux jest dość złożony i może być stosowany nawet w zastosowaniach wojskowych, podczas gdy AppArmour jest zwykle prostszy. SELinux działa na poziomie i-węzła (tzn. Ograniczenia są stosowane w taki sam sposób, jak uprawnienia ACL lub UNIX - z drugiej strony), podczas gdy AppArmour ma zastosowanie na poziomie ścieżki (tzn. Użytkownik określa dostęp na podstawie ścieżki, więc przy zmianie ścieżki może nie mieć zastosowania ). AppArmour może także chronić podprocesy (jak tylko mod_php), ale jestem sceptycznie nastawiony do prawdziwego wykorzystania tego. Wygląda na to, że AppArmour trafia do jądra głównego (jest w -mm IIRC).
Nie wiem dużo o SMACK, ale z opisu wygląda na uproszczonego SELinuksa. Istnieje również RSBAC, jeśli chcesz na to spojrzeć.
chroot ma ograniczony zakres użycia i nie sądzę, że przydałoby się to w środowisku pulpitu (można go użyć do oddzielenia demonów od dostępu do całego systemu - np. demona DNS).
Na pewno warto zastosować „ogólne” hartowanie, takie jak PaX, -fstack-protector itp. Chroot, którego można używać, gdy obsługuje go dystrybucja, podobnie jak AppArmour / SELinux. Wydaje mi się, że SELinux lepiej nadaje się do obszarów o wysokim poziomie bezpieczeństwa (ma znacznie lepszą kontrolę nad systemem), a AppArmour jest lepszy do prostego hartowania.
Zasadniczo nie zawracałbym sobie głowy bardzo mocno hartowaniem ogólnego pulpitu, z wyjątkiem wyłączania nieużywanych usług, regularnej aktualizacji itp., Chyba że pracujesz w strefie o wysokim stopniu bezpieczeństwa. Jeśli mimo to chcesz zabezpieczyć, skorzystałbym z tego, co obsługuje twoja dystrybucja. Wiele z nich, aby być skutecznym, potrzebuje wsparcia aplikacji (do ex narzędzi kompilacji do obsługi atrybutów, pisemnych reguł), więc radziłbym użyć tego, co obsługuje twoja dystrybucja.