Проблемы с SELinux при добавлении правил
На своем ноутбуке я впервые использую дистрибутив Fedora 17, и у меня возникают проблемы с добавлением правил в semodule
Пример:
# grep httpd /var/log/audit/audit.log | audit2allow -M mypol
# semodule -i mypol.pp
И вывод:
libsemanage.semanage_get_lock: не удалось получить прямую блокировку транзакции в /etc/selinux/targeted/modules/semanage.trans.LOCK. (Ресурс временно недоступен). Semodule: не удалось на mypol.pp!
Я искал информацию, связанную с этой проблемой, но, похоже, ничего не могу найти.
Итак, есть идеи о том, куда идти или что делать, чтобы решить эту проблему?
2 ответа
У меня был лучший день после:
# setenforce 0 && setenforce 1
Это отключает, затем включает selinux и, следовательно, разрешает любые условия гонки, которые могут возникнуть при одновременном управлении настройками, пока selinux принудительно работает.
Возможно, вам это сейчас не нужно, но я нашел это через поиск в Google, поэтому я опубликую свой ответ для всех, кто интересуется, как решить эту проблему.
Решение:
Когда вы получаете сообщение об ошибке, такое как выше, о "файле блокировки", в котором говорится "ресурс временно недоступен", это обычно означает, что по какой-то причине программа уже запущена, поэтому вы не можете запустить ее снова.
Так что вам нужно найти программу и завершить ее.
Выполнение следующего поиска процессов в системе для поиска модуля
$ ps aux | grep semodule
Он вернет вывод, похожий на этот:
root 6288 0.0 0.1 229084 7652 pts/1 T 22:34 0:00 sudo semanage permissive -a httpd_t
Второй столбец (значение 6288) - это идентификатор процесса, который уже запущен.
Вы можете убить его с помощью этой команды.
$ sudo kill -9 6288