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