红联Linux门户
Linux帮助

Linux文件夹权限777,无法创建文件

发布时间:2017-01-11 09:33:20来源:linux网站作者:Frank_Liuxing
问题描述
在Linux系统中,使用MySQL导出csv文件,默认文件夹是/tmp目录,可以导出成功,然后我在/tmp/下面创建了一个lx目录,并将/tmp/lx的权限设置为777,也就是/tmp与/tmp/lx的权限都是777,再将mysql数据导出到lx目录,报错:
ERROR 1 (HY000) at line 16 in file: './export.sql': Can't create/write to file '/tmp/lx/t_User.csv' (Errcode: 13 - Permission denied)
 
解决方法
我作为一个linux的菜鸟,完全无法理解这种现象,只能google、百度各种找资料,最后终于有人提到估计是SELinux的原因。于是继续找资料,在此摘录几条我认为比较重要的:
SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统。在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。SELinux 默认安装在 Fedora 和 Red Hat Enterprise Linux 上,也可以作为其他发行版上容易安装的包得到。
对访问的控制彻底化MAC(Mandatory Access Control)
对于所有的文件,目录,端口这类的资源的访问,都可以是基于策略设定的,这些策略是由管理员定制的、一般用户是没有权限更改的。
TE (Type Enforcement)– 对于进程只赋予最小的权限
Te概念在 SELinux里非常的重要。它的特点是对所有的文件都赋予一个叫type的文件类型标签,对于所有的进程也赋予各自的一个叫 domain的 标签。Domain标签能够执行的操作也是由access vector在策略里定好的。
domain迁移 –防止权限升级
对于用户只赋予最小的权限
反正SELinux听起来是很高大上的,但是作为一个Linux菜鸟,不打算从更改权限入手解决问题,而打算使用更直接的方法:关闭 SELinux服务,对,就是关闭。
关闭SELinux的方法:
1.临时关闭:使用命令setenforce 0
2.永久关闭:修改/etc/selinux/config文件中设置SELINUX=disabled ,然后重启服务器。
使用setenforce 0关闭后,再试了一下上面失败的mysql导出文件,果然没问题。
 
本文永久更新地址:http://www.linuxdiyf.com/linux/27693.html