在 Ubuntu 中sudo apt-get install mysql-server
,该软件包将:
- 创建一个帐户
mysql
/var/lib/mysql
创建具有权限的存储目录drwx------ 4 mysql mysql
/var/log/mysql
具有权限创建日志目录drwxr-s--- 2 mysql adm
为什么?在我看来,的权限/var/log/mysql
应该是。你能给我一些关于位和“adm”组drwxr-x--- 4 mysql mysql
的见解/惯例吗?s
答案1
接收+接收
由于 mysqld 在该mysql
帐户下运行,该帐户已经是所有者的/var/lib/mysql
,只有“用户”权限位适用;根本不需要授予组任何访问权限。(如果一个无知的管理员将普通用户添加到组中,甚至可能产生安全问题的风险;mysql
如果目录是 g+rx,这将允许此类用户绕过 MySQL 权限检查。)
加加
在目录中,“setgid” g+s 位意味着在里面创建的新项目将从目录继承其组,而不是从进程继承。这意味着所有日志文件都将归 :adm 所有,无论 mysqld 本身属于哪个组。
管理员
授予对系统日志文件的读取权限实际上是“adm”的唯一目的。(过去,这些文件通常保存在 中/usr/adm
,当然,这是用户帐户的主目录adm
。)
我并不完全清楚其名称的起源,但我猜测其区别在于从事系统管理工作的“操作员”和根据系统使用日志负责会计和付款的“管理员”。