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. chcon
nie 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.