我有一个 Expect 脚本,如果我手动运行它可以正常工作,但在作为 Fail2ban 的操作运行时会失败。错误信息如下:
spawn /usr/bin/telnet 192.168.242.1
The system has no more ptys. Ask your system administrator to create more.
while executing
"spawn /usr/bin/telnet $hostname"
使用 audit.log 中的相应消息:
type=AVC msg=audit(1407894085.867:54862): avc: denied { read write } for pid=14748 comm="ciscoacl.exp" name="ptmx" dev=devtmpfs ino=5288 scontext=unconfined_u:system_r:fail2ban_t:s0 tcontext=system_u:object_r:ptmx_t:s0 tclass=chr_file
该脚本以 root 身份运行(通过whoami
从脚本运行确认),所以我预计不会有任何问题。如果有的话,我能做些什么来解决这个问题?(不,我不想禁用 SELinux!)
我认为脚本本身在这里没有什么不同,但如果需要,我可以发布它。
您必须使用 audit2allow 制定自定义策略,以允许 fail2ban 对 chr_file 进行读写。可能它看起来像这样:
你确定没有更多的否认?