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

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介:

不低于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

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2天前
|
关系型数据库 MySQL 数据库
MySQL 启动 登录报错Job for mysqld.service failed because the control process exited with error code. See
MySQL 启动 登录报错Job for mysqld.service failed because the control process exited with error code. See
|
2天前
|
关系型数据库 MySQL Linux
Linux CentOs7 安装Mysql(5.7和8.0版本)密码修改 超详细教程
Linux CentOs7 安装Mysql(5.7和8.0版本)密码修改 超详细教程
|
2天前
|
SQL 关系型数据库 MySQL
【简单无脑】自动化脚本一键安装虚拟机下的MySQL服务
该文章提供了在虚拟机上安装MySQL服务的简化方法,特别是针对新手。作者提供了一个自动化脚本`install_mysql.sh`,使得安装过程更简单。用户需要下载`install.rpm`资源,将其放在指定目录下,然后创建并编辑脚本文件,将提供的代码粘贴进去,通过`chmod u+x`授权,最后运行脚本`./install_mysql.sh [rpm文件路径]`来安装MySQL。文章还附有相关图片说明。
14 1
【简单无脑】自动化脚本一键安装虚拟机下的MySQL服务
|
2天前
|
SQL 缓存 关系型数据库
MySQL常见问题解决和自动化安装脚本
这篇内容包含了两个主要部分:解决MySQL登录问题和处理GPG密钥问题。当MySQL密码正确但无法登录时,可以通过执行SQL命令`ALTER USER`和`flush privileges`来修改和重置密码。对于MySQL安装时的GPG密钥错误,首先需要强制删除旧的MySQL仓库包,导入新的GPG公钥,然后安装MySQL服务器。如果遇到GPG检查错误,可以使用`--nogpgcheck`参数忽略检查来安装。最后,提供了一个自动化安装MySQL的脚本,用于检查旧版本、卸载残留、安装MySQL8并启动服务。
15 1
MySQL常见问题解决和自动化安装脚本
|
7天前
|
Shell Linux
【Linux】Bash支持各种指令选项的原理:命令行参数
【Linux】Bash支持各种指令选项的原理:命令行参数
|
8天前
|
Linux Shell 数据安全/隐私保护
|
8天前
|
弹性计算 关系型数据库 MySQL
离线安装二进制Mysql脚本
【4月更文挑战第30天】
10 1
|
8天前
|
DataWorks 安全 关系型数据库
DataWorks产品使用合集之在 DataWorks 中使用数据集成从 MySQL 导入数据到 GDB 执行同步任务脚本的步骤如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
21 0
|
9天前
|
存储 关系型数据库 MySQL
linux安装MySQL8.0,密码修改权限配置等常规操作详解
linux安装MySQL8.0,密码修改权限配置等常规操作详解
|
9天前
|
弹性计算 运维 Shell