博客
关于我
MySQL隐藏文件.mysql_history风险
阅读量:380 次
发布时间:2019-03-05

本文共 806 字,大约阅读时间需要 2 分钟。

1.1 MySQL历史记录的隐私问题

在用户的家目录下,MySQL会默认生成一个隐藏文件`.mysql_history`,用来记录所有与MySQL相关的操作记录。这些记录包括用户的创建、修改以及明文密码的操作。如果恶意分子能够访问这一文件,他们就能获取到重要的账号信息,这对系统安全是一个潜在的风险。为了保护服务器的安全,了解并解决这一问题显得尤为重要。

1.2 解决方案

方法一:创建软链接

ln -s /dev/null ~/.mysql_history
通过创建一个软链接,将`.mysql_history`指向一个空文件(/dev/null),可以有效避免文件被记录。这样一来,MySQL就无法再将操作日志写入实际存在的文件中。

方法二:指定记录路径

如果需要记录操作日志,可以通过修改`MYSQL_HISTFILE`环境变量来指定日志文件的路径。默认情况下,这个变量值为当前用户的家目录,修改方法如下:

cat >> /etc/profile << EOF    export MYSQL_HISTFILE=/home/mysql/.my_history    EOF    source /etc/profile
通过上述方法,可以将日志文件移动到指定目录,避免重要信息泄露。然而,如果你希望完全禁止日志记录,最好选择方法一。

方法三:使用tee命令

如果需要对某些特定的操作记录下来,可以使用MySQL的tee命令。例如:

mysql -u root -p -e "SHOW DATABASES;" tee /tmp/mysql_history
使用完后,记得注释掉tee命令以防被恶意利用:
# [client] tee=/tmp/mysql_history

需要注意的是,以上方法仅能部分限制日志记录,完全阻止记录的最有效方式仍然是通过创建软链接来实现。因此,在实际应用中,建议优先选择方法一。

转载地址:http://ibrwz.baihongyu.com/

你可能感兴趣的文章
“/”应用程序中的服务器错误。
查看>>
MUI之ajax获取后台接口数据
查看>>
使用sqlserver 查询不连续的数据
查看>>
用div+css+html+js 实现图片放大
查看>>
(原创)在Linux上安装运行Python3(CentOS7为例)
查看>>
weblogic之cve-2015-4852
查看>>
Java注释
查看>>
水调歌头·1024
查看>>
C++ 函数重载
查看>>
Nginx简介
查看>>
Nginx的Gzip功能
查看>>
Azure Storage 系列(四)在.Net 上使用Table Storage
查看>>
a instanceof A:判断对象a是否是类A的实例。如果是,返回true;如果不是,返回false
查看>>
abstract关键字的使用
查看>>
.NET微信网页开发之使用微信JS-SDK调用微信扫一扫功能
查看>>
解决Spirng注入时名称下的红色波浪线
查看>>
EntityFramework 6.x和EntityFramework Core关系映射中导航属性必须是public?
查看>>
使用mybatis-generator生成底层
查看>>
Android APK 重签名
查看>>
Mybatis【3】-- Mybatis使用工具类读取配置文件以及从属性读取DB信息
查看>>