WEB开发网
开发学院数据库MySQL Mysql入门系列:MYSQL服务器内部安全性-安全数据目... 阅读

Mysql入门系列:MYSQL服务器内部安全性-安全数据目录访问

 2006-12-31 10:52:40 来源:WEB开发网   
核心提示: 3) 将您想窃取的表的相应文件拷贝到服务器数据目录下的test 子目录中,4) 启动作案服务器,Mysql入门系列:MYSQL服务器内部安全性-安全数据目录访问(3),您可以随意访问这些表,SHOW TABLES FROM test 将显示您拥有一个被窃取表的备份,因为它现在是唯一拥有该数

3) 将您想窃取的表的相应文件拷贝到服务器数据目录下的test 子目录中。

4) 启动作案服务器。您可以随意访问这些表。SHOW TABLES FROM test 将显示您拥有一个被窃取表的备份, SELECT * 将显示任何这些表的全部内容。

5) 如果更坏一点,打开服务器的匿名用户账号的许可权,使任何人都能从任何地方连接到该服务器来访问您的test 数据库。现在,您已经向全世界公布了这些被偷窃的表。

考虑一下刚才的情况,然后颠倒过来想。您希望有人对您这样做吗?当然不要。

通过在数据目录中执行ls -l 可以确定数据目录中是否包含非安全的文件或目录。应查看具有以开启的“组”或“其他”许可权的文件或目录。以下是一个非安全数据目录的部分列表,是该数据目录中的一部分数据库目录:

正如您所看到的,有些数据库目录有正确的许可权,而有些则不是这样。本例中的情况是由于时间引起的。较老的服务器创建了限制较少的许可权,且较老的服务器与较新的服务器相比,在设置许可权方面不严格(请注意,有更多限制的目录, menager 和t m p,都有更为新的日期)。MySQL当前的版本确保这些文件只对服务器运行的用户可读。

让我们来安排这些许可权,使得只有服务器的用户才能访问它们。主要的保护手段来自由UNIX 文件系统本身提供的工具,这些工具可设置文件和目录的所有权及方式。操作步骤如下:

1) 定位到数据目录中:

% cd DATADIR

2 ) 设置该数据目录下所有文件的所有权为运行该服务器的账号所拥有(必须以root 身份执行这一步)。在本书中,笔者对此账号的用户名和组名使用mysqladm 和mysqlg r p。可以用下列命令之一修改所有权:

# chown -R mysqladmin.mysqlgrp

# find . -follow -type d -print | xargs chown mysqladmin.mysqlgrp

3 ) 修改数据目录和数据库目录的方式,使得它们仅对于mysqladm 是可读的。这样防止了其他用户访问数据目录的内容。可以利用下列命令之一来进行,这些命令或者以root 或者以mysqladm 运行(后者更好,可以使作为root 运行的命令数量最小化):

% chmod -R go-rwx

% find . -follow -type d -print | xargs chmod go -rwx

4 ) 对mysqladm 用户设置数据目录内容的所有权和方式。现在,您应该确保总是以mysqladm 运行,因为它现在是唯一拥有该数据目录访问权的用户。作为非root 用户运行服务器的过程已在第11章中介绍。

在上述步骤之后,将拥有以下许可权:

查看全套"Mysql入门系列教程 ">>>>>

上一页  1 2 3 

Tags:Mysql 入门 系列

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接