老男孩教育每日一题:2017年3月13日-如何防止Linux命令行或脚本里MySQL登录密码泄露?

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

不低于3种方法。

 

明知山有虎偏向虎山行的方案:

1.1.1 可以通过如下环境变量强制Linux不记录敏感历史命令

在命令行执行HISTCONTROL=ignorespace后,再输入带密码的命令的前面加一个空格登录,登录命令不会被记录到历史记录里。

1
[root@oldboy~] # HISTCONTROL=ignorespace

 

#<==这里是临时生效,要想永久生效,请放入/etc/bashrc

1
[root@oldboy~] #  mysql -uroot-p'oldboy123'

#<==命令的开头要多一个空格。

1.1.2 操作完敏感的命令后可以及时删除命令行记录

执行“history -d 历史命令序号” 清除指定历史记录命令

1
[root@oldboy~] # history|tail -4

#<==显示历史记录。

1
2
  
  252 mysql -uroot -p 'oldboy123'

#<==此条带密码,敏感,待删除。

1
2
3
4
   253  pwd
   254  history
   255  history | tail  -4
[root@oldboy~] # history -d 252

#<==删除序号为252的历史记录。

1
2
[root@oldboy~] # history|tail -5
  252  pwd

                

#<==序号252对应的带密码登录的命令已经消失。

1
2
3
4
5
6
7
8
9
   253  history
   254  history | tail  -4
   255  history  -d 252
   256  history | tail  -5
执行“ history  -c”清除所有所有记录
[root@oldboy~] # history -c
[root@oldboy~] # history
     history
执行“>~/.bash_history”清除历史记录文件


1.1.3 给带密码的启动脚本以及备份脚本等加700权限,用户和组改为root

chmod 700/data/3306/mysql            

#<==可以采用kill信号的关闭方式数据库,从而防止密码泄露。

chmod 700/server/scripts/bak.sh       

#<==将密码写入my.cnf配置文件,使得执行备份命令不需要加密码。

1.1.4 把密码写入my.cnf配置文件并加700权限,用户和组改为mysql

1
2
[root@oldboy~] # cp /application/mysql/my.cnf /etc/
[root@oldboy~] # grep -A 2 client/etc/my.cnf

 #<==配置文件开头添加如下三行,无需重启系统。

1
[client]

  #<==客户端模块标签。

1
user=root

  #<==用户参数及密码。

1
password=oldboy123

  #<==密码参数及密码。

1
[root@oldboy~] # mysql

#<==此时登录数据库就不用输入密码了。

1
2
3
4
5
6
Welcometo the MySQL monitor.  Commands endwith; or \g.
YourMySQL connection  id  is 8
Serverversion: 5.6.34 Source distribution
...省略若干行...
Type 'help;'  or  '\h'  for  help. Type  '\c'  to clearthe current input statement.
mysql>

知道山上有老虎,就不去的的方法:

1
[root@oldboy~] # mysql-uroot -p

#<==这里标准dba命令行登陆命令,交互式输入密码可有效防止密码泄露。

1
Enter password:


本文转自 李导 51CTO博客,原文链接:http://blog.51cto.com/lidao/1912536

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
344
分享
相关文章
MySQL 备份 Shell 脚本:支持远程同步与阿里云 OSS 备份
一款自动化 MySQL 备份 Shell 脚本,支持本地存储、远程服务器同步(SSH+rsync)、阿里云 OSS 备份,并自动清理过期备份。适用于数据库管理员和开发者,帮助确保数据安全。
试试Linux设备命令行运维工具——Wowkey
WowKey 是一款专为 Linux 设备设计的命令行运维工具,提供自动化、批量化、标准化的运维解决方案。它简单易用、高效集成且无依赖,仅需 WIS 指令剧本文件、APT 账号密码文件和 wowkey 命令即可操作。通过分离鉴权与执行过程,WowKey 让运维人员专注于决策,摆脱繁琐的交互与执行工作,大幅提升运维效率与质量。无论是健康检查、数据采集还是配置更新,WowKey 都能助您轻松应对大规模设备运维挑战。立即从官方资源了解更多信息:https://atsight.top/training。
Linux设备命令行运维工具WowKey问答
WowKey 是一款用于 Linux 设备运维的工具,可通过命令行手动或自动执行指令剧本,实现批量、标准化操作,如健康检查、数据采集、配置更新等。它简单易用,只需编写 WIS 指令剧本和 APT 帐号密码表文件,学习成本极低。支持不同流派的 Linux 系统,如 RHEL、Debian、SUSE 等,只要使用通用 Shell 命令即可通吃Linux设备。
linux root登陆,密码正确但,错误提示su: Authentication failure
通过系统化的排查和解决方案,可以有效应对 `su: Authentication failure` 问题,确保系统安全和用户权限的正确管理。
708 36
Linux下mysql数据库的导入与导出以及查看端口
本文详细介绍了在Linux下如何导入和导出MySQL数据库,以及查看MySQL运行端口的方法。通过这些操作,用户可以轻松进行数据库的备份与恢复,以及确认MySQL服务的运行状态和端口。掌握这些技能,对于日常数据库管理和维护非常重要。
194 8
Linux安装jdk、mysql、redis
Linux安装jdk、mysql、redis
300 7
MySQL数据库下载安装教程(Windows&Linux)
本文档详细介绍了MySQL的安装步骤,包括安装前的准备工作、下载安装包、Windows和Linux系统下的具体安装流程,以及如何配置MySQL服务、设置环境变量、启动服务和连接数据库等关键操作。