不错,系统更加安全了,但是SA如果不熟悉SELinux的话(或者根本不知道有这个玩意儿),就会出现很多权限出错的问题。
前几天就被SELinux折腾的够呛。
当时现象如下:
my.cnf里面配置的user=mysql.
mysqld_safe &启动时报错:InnoDB: Operating system error number 13 in a file operation,The error means mysqld does not have the access rights to the directory.
实际上存放这个数据文件的文件夹我已经chown mysql:mysql dirname ,chmon -R 777 dirname了。
怀疑是SELinux的问题,disabled重启之后问题依旧。
后来发现,只有把数据文件放在/var/lib/mysql下,数据库才可以正常启动.或者mysqld_safe --user=root &也可以启动。
当晚发现权限问题的时候,就怀疑是SELinux在捣乱,但是没有想到disabled重启机器以后,SELinux依然阴魂不散......又让我多花了一天的时间排除其他的可能性。
ls -Z可以看到selinux在文件夹或者文件上面打的‘标签’:user_u:object_r:user_home_t:s。
如果一个文件你是在SELinux打开的时候创建的,那么即使你关闭SELinux,它的权限控制还是会起作用的。
可以通过chcon来改变权限。或者干脆重装系统。
----------------------
ubuntu下面默认安装apparmor而不是SELinux,它同样也会导致一些莫名其妙的权限问题,也要注意。
没有评论:
发表评论