安装mysql的时候为什么要配置不让mysql用户登陆

错觉 发布于 2015/11/18 14:41
阅读 796
收藏 0
# Preconfiguration setup
shell> groupadd mysql
shell> useradd -r -g mysql -s /bin/false mysql

这是MSYQL官方安装文档中的内容,请问

1. 为什么useradd 要加-r参数

2.为什么要加入 /bin/false这个配置不让mysql登录呢,那还不如用root安装呢
加载中
0
x
xdsnet_g

mysql用户是执行mysql程序的用户,这样mysql用户只能执行mysql程序,可以做到系统安全啊(因为不能登录,所以即使mysql服务被破坏了,当前用户权限也干不了多大的事情,也就搞不了多大的破坏)。

这算是系统内应用隔离安全措施的一种。

什么都用root会让系统很不安全的。

错觉
错觉
谢谢,那mysql用户是执行mysql程序的用户, 既然都不能登录了,怎么能启动mysql呢,怎么登录mysql客户端呢
0
zigzagroad
zigzagroad
MySQL数据库用户 和 操作系统用户,启动MySQL用的是操作系统用户,MySQL客户端连接数据库时用的是数据库用户。
0
苍暮之星
这个是安全策略,派生出一个mysql用户和用户组,只用来运行mysql。apache的设置也是一样的,因为apache需要用到root权限,所以为了安全性,也会派生出一个apache用户和用户组,只让他完成apache的启动而已。
错觉
错觉
回复 @苍暮之星 : 谢谢,我知道不能都用root运行,这样太危险,我之前都是用mysql用户管理mysql的,这个bin/false居然不让mysql登录了,那我还怎么管理呢?我先研究下你说的派生用户的意思吧,谢谢了
苍暮之星
回复 @错觉 : 具体你可以去翻Linux创建用户部分的手册。Linux用Root登录的话,毫无安全性可言。甚至比Windows的Administrator危险,因为权限太高了。
苍暮之星
回复 @错觉 : 创建用户时指定-r,指创建系统用户。系统用户是用来派生服务的,本身就不需要登录。功能主要就是设定某个程序的运行权限,避免去使用root登录。系统用户id范围1-499,很容易识别。在有些书里面成为派生用户/派生用户组。
错觉
错觉
/bin/false是不让mysql用户登录的意思,那还怎么运行mysql服务呢
0
x
xdsnet_g
极为特殊情况下,可以由管理员通过root再切换到mysql用户(可以临时打开权限的,打开后再关闭啊)
返回顶部
顶部