Linux/Unix非交换方式修改密码避免命令历史能查看到密码的方法

除了Solaris,HP-UX不支持chpasswd这种非交换方式修改账号密码之外,很多Linux/Unix都正常,比如:.Redhat、CentOS、Suse、 Unbuntu和AIX,但是用chpasswd这种方式修改密码有个缺陷,就是可能命令历史中存在密码明文(如果会记录命令历史的话)。通过网上查询,设置HISTCONTROL=ignorespace,这样如果命令前面加上空格的话,就不会把命令记录到命令历史文件中,但是实际测试,有不少操作系统或者shell是不支持这个变量的,因此还得想其他方法。
经过测试,采用非交换的方式修改密码(一般用于脚本修改密码),可以在类似echo xll:‘[email protected]!@#¥%‘ |sudo chpasswd命令执行完成之后,再执行sed -i -r ‘s/(^echo[^:]+:)([^|]+)(|sudo chpasswd)/\1‘**********‘\3/g‘ `grep -l chpasswd ~/.*history`这样就可以保证,不同的shell,如果保存命令历史的话,就把命令历史的明文密码,以*号隐藏。

原文地址:http://blog.51cto.com/333234/2300993

时间: 2024-09-29 04:54:18

Linux/Unix非交换方式修改密码避免命令历史能查看到密码的方法的相关文章

3.自学Linux之路:shell特性之三:命令历史

命令历史 简介:bash保存了过去曾经执行过的命令列表. 当前shell的命令进程保存在内存中. 退出时,保存到当前用户文件夹中的隐藏文件夹.bash_histroy中,ls -a 可查看 history快捷方式: !#: #为命令历史列表中的命令编号(#history :查看缓存中的命令历史及编号) !!: 执行上一条,等价于方向键上 !-1:执行倒数第一个命令 !string: 执行历史中最近一次以string开头的命令 history -c :清空缓存中的命令历史 history -d #

Linux查找指定目录最新修改文件的命令

1. 查找30分钟内最新修改过的文件 find ./ -mmin -30 -type f | head -1 2. 查找30分钟内最早修改过的文件 find ./ -mmin -30 -type f | tail -1 3. 查找24小时内最新修改过的文件 find ./ -mtime 0 -type f | head -1 4. 查找48小时~24小时内最新修改过的文件 find ./ -mtime 1 -type f | head -1 5. 查找最新三天修改过的最新文件 find ./ -

java连接linux的三种方式(附执行命令)

# 本地调用使用JDK自带的RunTime类和Process类实现 public static void main(String[] args){ Process proc = RunTime.getRunTime().exec("cd /home/winnie; ls;") // 标准输入流(必须写在 waitFor 之前) String inStr = consumeInputStream(proc.getInputStream()); // 标准错误流(必须写在 waitFor

详述Linux计划任务的 at和crontab的命令 以及如何查看crontab日志

一:1.计划任务,是任务在约定的时间执行已经计划好的工作,这是表面的意思.在Linux中,我们经常用到 cron 服务器来完成这项工作.cron服务器可以根据配置文件约定的时间来执行特定的作务.比如我们可以在配置文件中约定每天早上4点,对httpd 服务器重新启动,这就是一个计划任务: 2.cron是一个linux下的定时执行工具 Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动.关闭这个服务: /sbin/service crond start //启动服务 /sbin/

windows10 通过命令行来查看wifi密码

c:\Windows\System32>netsh netsh>wlan show profile 接口 WLAN 上的配置文件: 组策略配置文件(只读) --------------------------------- <无> 用户配置文件 ------------- 所有用户配置文件 : HelloWorld 所有用户配置文件 : iPhone netsh>wlan show profile HelloWorld key=clear 接口 WLAN 上的配置文件 Hel

linux命令历史详解

概念:顾名思义,我们在linux终端输过的命令,系统都会将他们加载到内存中,以便我们快速调用命令.另外,Bash拥有自动记录命令历史的功能,用户所执行的命令会在注销时自动记录到自己的家目录下的.bash_history隐藏文件中,这样方便我们了解用户的对系统的整个操作过程,查询可能出错的原因. 查看命令历史记录的方法: 可以通过直接打开文件来查看 命令 [[email protected] ~]$ cat .bash_history 2.通过键盘的上下键来上翻或下翻历史记录 3.通过histor

5分钟快速学习——Linux Centos7--账号安全控制和命令历史自动注销

一.账号安全控制 用户账号是计算机使用者的身份凭证或标识,每个要访问系统资源的人,必须凭借其用户账号才能进入计算机.在 Linux 系统中,提供了多种机制来确保用户账号的正当.安全使用. 1.系统账号清理**** hattr +i /etc/passwd /etc/shadow锁定用户与密码文件 lsattr /etc/passwd /etc/shadow查看文件状态 chattr -i /etc/passwd /etc/shadow解锁用户与密码文件 2.密码安全控制 在不安全的网络环境中,为

安卓手机中wifi密码查看器,查看wifi密码教程

市场上有很多查看wifi密码的软件,都是只能查看本地已经连过的wifi密码而已,大家都觉得没啥用, 但是呢 我告诉大家,确实能用的, 只是您不会使用而已. 大家都知道<wifi万能钥匙>,<wifi伴侣>,<360的wifi>等软件都能让您免费连wifi, 但是不会显示密码是多少, 那么这时候<查看wifi密码>这种软件就有作用了, 直接查看之前用wifi万能钥匙啥的连过的密码, 然后你就能快乐的玩耍啦! 但是使用<查看wifi密码>等软件需要r

Windows Azure上通过挂载磁盘的方式修改Linux系统登录密码

说到windows azure 上的vm密码相关问题,我们前两篇文章已介绍了如果重置windows azure上的windows vm.linux vm的登陆账户密码.今天呢主要说一下,除了以上两种方法以外还有一种方法来找回密码.具体见下: 一.首先是单击虚拟机--仪表盘,记录磁盘名称,删除原虚拟机A保留其磁盘 二.在原有云服务中新建虚拟机或使用已存在的虚拟机B,获取root权限 三.将虚拟机A的磁盘当做数据盘挂载到B (在删除虚拟机A之后可能需要几分钟等待后台同步) 3.1 选择附加---附加