She*_*009 5 shell rhel permissions selinux mysql
我有一个转储 mysql 数据库的脚本。然后它压缩文件,并使用 cron 将其存储在我的主文件夹中。问题是我似乎收到一条错误消息。
mysqldump:无法执行“显示来自‘auth_group’的字段”:无法创建/写入文件“/tmp/#sql_151e_0.MYI”(错误代码:13)(1)c2duo_db-22072011.sql
现在在我的 centos 服务器图形端,它说 selinx 拒绝访问 mysqld。当然,如果我禁用 selinux,这可以正常工作。但我需要启用 selinux。有没有办法解决这个问题?
定时任务
10 11 * * 5 /home/sh/mysqlbackup.sh
Run Code Online (Sandbox Code Playgroud)
mysqlbackup.sh
#!/bin/sh
mysqldump -uroot -ppassword --opt c2duo_db > /home/sh/c2duo_db-`date +%d%m%Y`.sql
cd /home/sh
tar -zcvf c2duo_db.tgz *.sql
Run Code Online (Sandbox Code Playgroud)
编辑:这是我从命令中得到的grep mysqld /var/log/audit/audit.log | tail | audit2why。
type=AVC msg=audit(1311581788.889:12363): avc: denied { write } for pid=22102 comm="mysqld" path="/tmp/#sql_151e_0.MYI" dev=dm-0 ino=103481390 scontext=root:system_r:mysqld_t:s0 tcontext=root:object_r:httpd_sys_content_t:s0 tclass=file
Was caused by:
Missing or disabled TE allow rule.
Allow rules may exist but be disabled by boolean settings; check boolean settings.
You can see the necessary allow rules by running audit2allow with this audit message as input.
Run Code Online (Sandbox Code Playgroud)
另外,我的mysql服务器已经安装在这台机器上。所以我想这是一个官方回购。
小智 -1
我只是运行以下建议的命令audit2why:
% echo "type=AVC msg=audit(1311581788.889:12363): avc: denied { write } for pid=22102 comm="mysqld" path="/tmp/#sql_151e_0.MYI" dev=dm-0 ino=103481390 scontext=root:system_r:mysqld_t:s0 tcontext=root:object_r:httpd_sys_content_t:s0 tclass=file" | audit2allow
Run Code Online (Sandbox Code Playgroud)
该命令返回:
#============= mysqld_t ==============
allow mysqld_t httpd_sys_content_t:file write;
Run Code Online (Sandbox Code Playgroud)
这可能就是您需要的 SeLinux 策略允许规则。
但我不知道允许这个规则是否安全......
| 归档时间: |
|
| 查看次数: |
3288 次 |
| 最近记录: |