回到同一个问题。在添加 semanage 规则时,我在 python 中收到一些错误:
# semanage port -a -t http_port_t -p tcp 29200
Traceback (most recent call last):
File "/sbin/semanage", line 32, in <module>
import seobject
File "/usr/lib64/python2.7/site-packages/seobject/__init__.py", line 36, in <module>
import sepolicy
File "/usr/lib64/python2.7/site-packages/sepolicy/__init__.py", line 21, in <module>
codeset='utf-8')
File "/usr/lib64/python2.7/gettext.py", line 495, in install
t = translation(domain, localedir, fallback=True, codeset=codeset)
File "/usr/lib64/python2.7/gettext.py", line 480, in translation
t = _translations.setdefault(key, class_(fp))
File "/usr/lib64/python2.7/gettext.py", line 180, in __init__
self._parse(fp)
File "/usr/lib64/python2.7/gettext.py", line 317, in _parse
self.plural = c2py(plural)
File "/usr/lib64/python2.7/gettext.py", line 93, in c2py
raise ValueError, 'plural forms expression could be dangerous'
ValueError: plural forms expression could be dangerous
读了一些资料后,我发现了一些主题,统计数据显示添加交换会有所帮助。我添加了 700MB,没有帮助,然后添加了 4GiB,但仍然没有帮助。我在 /var/log/messages 或 dmesg 中没有看到任何特别之处...
# free -t -m
total used free shared buff/cache available
Mem: 23948 250 23343 16 355 23355
Swap: 4095 0 4095
Total: 28044 250 27439
# lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.4.1708 (Core)
Release: 7.4.1708
Codename: Core
# uname -a
Linux hostname 3.10.0-693.17.1.el7.x86_64 #1 SMP Thu Jan 25 20:13:58 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
# yum check-update
Įkelti įskiepiai: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.vpsnet.com
* epel: mirror.vpsnet.com
* extras: mirror.vpsnet.com
* updates: mirror.vpsnet.com
#
我还尝试检查 audit2why 或 audit2allow 但出现错误:
cat /var/log/audit/audit.log | audit2why
plural forms expression could be dangerous
区域设置:
# locale
LANG=lt_LT.UTF-8
LC_CTYPE="lt_LT.UTF-8"
LC_NUMERIC="lt_LT.UTF-8"
LC_TIME="lt_LT.UTF-8"
LC_COLLATE="lt_LT.UTF-8"
LC_MONETARY="lt_LT.UTF-8"
LC_MESSAGES="lt_LT.UTF-8"
LC_PAPER="lt_LT.UTF-8"
LC_NAME="lt_LT.UTF-8"
LC_ADDRESS="lt_LT.UTF-8"
LC_TELEPHONE="lt_LT.UTF-8"
LC_MEASUREMENT="lt_LT.UTF-8"
LC_IDENTIFICATION="lt_LT.UTF-8"
LC_ALL=
还有什么有用的东西?我知道我错过了一些东西,但是什么呢?
答案1
似乎您找到了一个未完全翻译成您的语言的程序。请尝试以下列方式运行它:
LANG=en_US.UTF-8 semanage port -a -t http_port_t -p tcp 29200
通过将我的语言改为您的语言,我可以重现您的问题,即:
# LANG=lt_LT.UTF-8 audit2why < /var/log/audit/audit.log
plural forms expression could be dangerous
但当我使用不同的语言时,它有效:
# LANG=en_US.UTF-8 audit2why < /var/log/audit/audit.log
Nothing to do