data-dir
本身具有权限700
,从而限制对用户的访问mysql
。
我希望我添加到该组的其他人mysql
能够阅读, ,文件binlogs
并将其下载到他们的本地计算机。*.frm
*.MYI
*.MYD
我的第一个念头是跑chmod g+rx data-dir
。
其中的数据库目录和表/二进制日志文件data-dir
具有770
/的权限660
。所以我必须chmod g-w
对所有这些进行处理,以防止意外篡改或删除实时数据。
不幸的是,当binlogs
创建新的并使用create database
orcreate table
命令时,g+w
权限会自动添加。我怎样才能改变这个功能?
好吧,我在网上发现,无论命令输出什么
UMASK
,UMASK_DIR
都必须设置环境变量。umask
必须在调用 之前立即将
export UMASK=0640
和添加export UMASK=0750
到启动脚本的顶部mysqld_safe
。前导零对于切换到八进制编号系统很重要。
我尝试的第一件事是
0027
,但是它生成了具有权限的文件,u=rw,g=w,o=rwx
所以这促使我将环境变量中的权限反转为0750
(和0640
)以产生所需的结果。我希望我的自我回答能帮助未来的访客。:-)
您要解决的根本问题是什么?
UMASK
可能是错误的做法。文件和目录必须可以被
mysql
“用户”完全访问,因此目录至少需要 0700,文件需要 0600。如果您希望“世界”能够读取它们(但不能写入它们),则为 0755 和 0644。但是您为什么要这样呢?而且您可能必须拥有
UMASK_DIR=0755
并UMASK=644
防止操作系统关闭底部位。MySQL 在 MySQL内部具有访问控制。这是通过
GRANT
MySQL 中的命令。MySQL“用户”与操作系统“用户”不同。特别是,操作系统的“root”和 MySQL 的“root”是独立的。