Ustaw wszystkie konteksty SELinux na stałe

9

chconOstatnio dużo napisałem, ale jeśli dobrze to zrozumiem, zostaną one usunięte przy następnym oznakowaniu. Czy jest jakiś sposób na utrwalenie obecnych kontekstów (najlepiej tuż pod określonym katalogiem)? Rozumiem, że można to zrobić za pomocą semanage, ale oznacza to przeglądanie i sprawdzanie kontekstu każdego pliku oraz wywoływanie w semanagecelu ustawienia reguły. Czy jest więc jakiś zautomatyzowany sposób?

brianmearns
źródło

Odpowiedzi:

5

Po pierwsze, masz rację, która semanage fcontext -a -t <type> <filepattern>powoduje , że zmiany plików są trwałe, dodając je do zasad - musisz ponownie oznakować lub restorecon -R -v <filepattern>zastosować te zmiany. chconnie zmienia zasad, tylko kontekst na dysku.

Możesz wygenerować listę różnic w zasadach oznaczonych za pomocą matchpathcon, w szczególności:

matchpathcon -V /path/to/file

Niestety nie ma opcji rekurencyjnej, prawdopodobnie ze względu na fakt, że chodzenie po drzewie byłoby drogie, ale można nim jeździć:

find / -exec matchpathcon -V {} \;

Bądź jednak ostrożny. Wierzę, że find przejdzie wszystkie podłączenia systemu plików, w tym systemy plików bez rozszerzonych atrybutów (xattrs), które mogą powodować problemy. Oczywiście, jeśli wszystkie systemy plików mają rozszerzone atrybuty, nie ma problemu.

Po utworzeniu tej listy możesz napisać skrypt, aby wybrać te, które będziesz semanage. Jednak nie znam zautomatyzowanego sposobu, aby to zrobić za jednym razem.


źródło
3

Używanie matchpathconz findjest bardzo wolne. Dlaczego nie użyć restorecon?

restorecon -rnv /path/to/dir

flagi są rekurencyjne, bez zmian i pełne.

użytkownik33688
źródło