![如何使用 shell 脚本在 AIX 和 Linux 上将哈希密码交换为较新的密码?](https://linux22.com/image/1607831/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20shell%20%E8%84%9A%E6%9C%AC%E5%9C%A8%20AIX%20%E5%92%8C%20Linux%20%E4%B8%8A%E5%B0%86%E5%93%88%E5%B8%8C%E5%AF%86%E7%A0%81%E4%BA%A4%E6%8D%A2%E4%B8%BA%E8%BE%83%E6%96%B0%E7%9A%84%E5%AF%86%E7%A0%81%EF%BC%9F.png)
我们有 AIX 和 Linux 机器,可以使用 puppet 自动更改密码。
但在某些情况下,我们需要手动执行此操作。但我决定编写一个脚本,用较新的哈希值替换旧哈希值。
我尝试混合使用两个不同的脚本来实现这一点:
第一步)
#!/bin/bash
# function
$os = 'uname -a | grep AIX'
if [ $os = 'AIX']
then
$dir='/etc/security/passwd'
else
$dir='/etc/shadow'
fi
第二步)取出旧哈希并放入空格(但我想放入新哈希):
function exchange_hash () {
echo "Extract hash..."
pass=`cat $dir | grep $user | awk -F: '{print $2}'`
}
我如何调用该函数并用较新的哈希替换旧哈希。我只需输入:
第一个参数 -> 用户名
第二个参数 -> newhash
该脚本需要在 AIX\Linux 上均可运行。我知道我必须调用 sh 才能在 AIX 上调用该脚本。
提前致谢!