缘起
我有一个备份的Shell脚本,传入用户名,密码,然后脚本开始备份数据库.

模拟备份的脚本
[lihuilin@lihuilin ~]$ cat backup.sh
#!/bin/bash
echo pwd:$1
sleep 1m

执行脚本
[lihuilin@lihuilin ~]$ ./backup.sh password
pwd:password

但是其他用户使用ps命令,可以直接看到我的密码
[lihuilin@lihuilin ~]$ ps -ef | grep backup
lihuilin  3163  2997  0 21:44 pts/1    00:00:00 /bin/bash ./backup.sh password
lihuilin  3183  3168  0 21:44 pts/2    00:00:00 grep backup
[lihuilin@lihuilin ~]$

这太崩溃了.有两种方式可以避免这种情况
1.按照如下内容修改脚本
[lihuilin@lihuilin ~]$ cat backup.sh
#!/bin/bash
read pwd
echo pwd:${pwd}
sleep 1m

然后使用如下调用方式
[lihuilin@lihuilin ~]$ ./backup.sh < password
EOF

这时,在ps命令中就已经看不到敏感信息了
[lihuilin@lihuilin ~]$ ps -ef | grep backup
lihuilin  3212  2946  0 21:50 pts/0    00:00:00 /bin/bash ./backup.sh
lihuilin  3215  2997  0 21:50 pts/1    00:00:00 grep backup

但是在/proc/pid/fd/下,仍然记录了该参数的值
[lihuilin@lihuilin ~]$ ps -ef | grep backup
lihuilin  3212  2946  0 21:50 pts/0    00:00:00 /bin/bash ./backup.sh
lihuilin  3218  2997  0 21:51 pts/1    00:00:00 grep backup
[lihuilin@lihuilin ~]$ cd /proc/3212/fd
[lihuilin@lihuilin fd]$ cat 0
password
[lihuilin@lihuilin fd]$

2.使用另外一种调用方式
脚本如下,内容同第一种修改方式
[lihuilin@lihuilin ~]$ cat backup.sh
#!/bin/bash
read pwd
echo pwd:${pwd}
sleep 1m

调用方式
[lihuilin@lihuilin ~]$ echo 'password' | ./backup.sh
pwd:password

在另外一个用户,无论是ps命令,还是查看/proc信息,都不能看到敏感信息了

显然,第二种方式比第一种方式更加安全.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29254281/viewspace-1578997/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29254281/viewspace-1578997/

Shell脚本对ps命令隐藏参数相关推荐

  1. linux脚本外输入参数,shell 脚本中关于用户输入参数的处理

    1.命令行参数 向shell脚本传递数据的最基本方式是使用命令行参数. (1) 读取参数 读取输入的参数的变量为位置参数,位置参数通过标准数字表示, 其中$0为程序名称,$1为第一个参数,$2为第二个 ...

  2. Java 调用Shell脚本执行 SCP命令提示Authorized users only. All activity may be monitored and reported.

    近期做了个小项目主要是关于数据处理这方面的. 在Java后端调用服务器上Shell脚本,而Shell脚本执行时一条Scp执行结果的提示报 Authorized users only. All acti ...

  3. Shell脚本语言常用命令总结~

    写目录 一.Shell概述 二.Shell脚本 三.Shell中的变量 3.1 系统变量 3.2 自定义变量 3.3 特殊变量:$n 3.4 特殊变量:$# 3.5 特殊变量:$* . $@ 3.6 ...

  4. shell脚本中执行命令_如何在Shell脚本中执行命令?

    shell脚本中执行命令 Shell is a command-line interpreter that allows the user to interact with the system. I ...

  5. linux 读取命令行输入参数,shell脚本读取文件+读取命令行参数+读取标准输入+变量赋值+输出到文件...

    读取url_list文件批量下载网页 url_list http://www.tianyancha.com/company/2412078287 http://www.4399.com/special ...

  6. Shell脚本中获取命令运行结果、特殊变量使用、条件判断等常用操作

    文章目录 前言 获取命令执行结果 使用反引号 `` ` ``command `` ` ``来执行命令 使用括号组合 $(command) 来执行命令 两种方式的区别 特殊变量使用 $0 $1 $2 . ...

  7. Linux shell脚本中的命令正确写法

    shell脚本中的命令需加反引号``

  8. [js]windows下通过命令行运行javascript脚本,支持命令行参数

    windows下通过命令行运行javascript脚本,支持命令行参数 js作为最受欢迎的语言,以其方便.通用.功能强大的特点,可以给大家在实际使用的过程中带来很大的便利. 下面是本文从实际应用的角度 ...

  9. 终于要把魔爪伸向shell编程了_命令行参数数量预检测——莫韵乐的小脚印笔记

    终于要把魔爪伸向shell编程了_命令行参数数量预检测 有时候我们在时使用shell的时候都需要传入一些参数,但是有时候我们传入的命令行参数数量不正确就很容易发生错误,因此我们需要在需要传入参数的sh ...

最新文章

  1. 生产者消费者模式 php 【转】
  2. python医学数据挖掘_GitHub - SSSzhangSSS/Python-Data-mining-Tutorial: Python数据挖掘教程
  3. bakaxl启动器怎么导入整合包_bakaxl启动器加皮肤光影mod
  4. linux在VM下分辨率的问题
  5. Vmware虚拟机全屏
  6. 74cms php在那个文件夹里面,74cms骑士人才网站系统 v5.0/v5.1后台目录地址修改教程...
  7. 计算机软件工程自考,自考软件工程试题及答案2021年10月
  8. 3文聚焦:RNA m6A甲基化修饰在不同农作物中的研究进展(马铃薯+水稻+玉米+小麦)|易基因
  9. EXCEL单元格内怎么换行?Alt+Enter
  10. 栈的输出_程序设计做题笔记:计算表达式(一):栈
  11. js删除数组指定的某个值或元素
  12. wps底纹去不掉_WPS广告太多,关又关不掉,其实它有无广告的版本
  13. 青少年CTFmisc 简简单单的题目
  14. Windows2000高级技巧
  15. Chrome浏览器及Chrome内核浏览器下载时使用p2p提速
  16. 喜马拉雅国际版apk下载
  17. [每天get点新技能]搜商——从A到Z亚马逊A9引擎
  18. 以至仁伐不仁,如何其血流漂杵也
  19. 电子书和纸质书有什么区别
  20. 特洛伊木马服务器源代码

热门文章

  1. 罗技 android蓝牙键盘,用上罗技K380 Multi-Device蓝牙键盘 我1分钟内就学会了分身术...
  2. Error processing condition on org.springframework.boot.actuate.autoconfigure.audit.AuditEventsEndpoi
  3. word 保存时 不能保存
  4. [46]python画出心形图
  5. 特斯拉如何驱动顶级客户体验
  6. SELinux权限问题解决
  7. m=m++到底发生了什么
  8. 电脑右键新建,少了office的几个图标,如:excel,word
  9. Ubuntu18.04安装显卡驱动重启后出现黑屏问题
  10. 【译】Using the SafetyNet API (使用SafetyNet API)