Ошибка создания политики SELinux относительно структуры памяти и контекста - PullRequest
1 голос
/ 03 июля 2019

Я работаю над RHEL 7. Здесь хранятся файлы журналов другой машины.Для создания политики я использовал следующую команду:

grep -inr "denied" audit.log* | audit2allow -M Policy_File_Name

Используя эту команду, я смог создать политику для многих файлов журнала.Но в некоторых случаях я сталкивался с этой ошибкой:

Traceback (most recent call last):
  File "/usr/bin/audit2allow", line 365, in <module>
    app.main()
  File "/usr/bin/audit2allow", line 352, in main
    self.__process_input()
  File "/usr/bin/audit2allow", line 180, in __process_input
    self.__avs = self.__parser.to_access()
  File "/usr/lib64/python2.7/site-packages/sepolgen/audit.py", line 591, in to_access
    avc.path = self.__restore_path(avc.name, avc.ino)
  File "/usr/lib64/python2.7/site-packages/sepolgen/audit.py", line 531, in __restore_path
    universal_newlines=True)
  File "/usr/lib64/python2.7/subprocess.py", line 568, in check_output
    process = Popen(stdout=PIPE, *popenargs, **kwargs)
  File "/usr/lib64/python2.7/subprocess.py", line 711, in __init__
    errread, errwrite)
  File "/usr/lib64/python2.7/subprocess.py", line 1224, in _execute_child
    self.pid = os.fork()
OSError: [Errno 12] Cannot allocate memory

И для немногих я сталкивался с этой ошибкой:

libsepol.context_from_record: type celery_t is not defined
libsepol.context_from_record: could not create context structure
libsepol.context_from_string: could not create context structure
libsepol.sepol_context_to_sid: could not convert system_u:system_r:celery_t:s0 to sid

Здесь «celery_t» изменяется относительно целевого контекста.

Состояние системы:

[root@selinux-policy-creation abhisheklog]# free -h
           total       used        free      shared  buff/cache   available
 Mem:      31G         261M        27G        8.4M        3.1G         30GB
 Swap:      0B          0B          0B

Пожалуйста, укажите причину и решение.Спасибо.

1 Ответ

0 голосов
/ 12 июля 2019

Такие сообщения об ошибках означают, что в файловой системе присутствуют недопустимые модули SE, которые могут быть остатками предыдущих плохих сценариев удаления. Удаление этих файлов вручную обычно позволяет избавиться от этих сообщений об ошибках; но в этом случае, похоже, все наоборот. Хотя присутствуют такие осиротевшие модули SE, это может привести к фиктивным сообщениям об ошибках - поэтому я даже не был бы слишком уверен в сообщении «невозможно выделить память». Есть ощущение, что это может быть связано с python2-celery (откуда появляется тип celery_t). Проблема в том, что тип celery_t попал в журнал аудита, но он неизвестен машине, на которой работает audit2allow.

python2-celery-4.2.1-3.el7.noarch : Distributed Task Queue
Repo        : epel
Matched from:
Filename    : /usr/bin/celery

Первое, что можно попробовать:

sudo yum install python2-celery

, который может восстановить отсутствующий тип celery_t. Я имею в виду, что если этот файл журнала создается на другом компьютере, на этом компьютере может быть установлен python2-celery, а на компьютере, на котором запущен audit2allow, его просто может не быть. Надеюсь, что это имеет смысл.

...