如何从一个文件复制一行并替换另一个文件中的行?

如何从一个文件复制一行并替换另一个文件中的行?

希望能够在脚本中从一台计算机中提取影子文件条目,然后在另一台计算机上找到该用户的条目并替换该行(以更新其在多台计算机上的密码)。

请注意,这是用户创建脚本的一部分,因此将首先在每台计算机上创建用户,然后在服务器上添加密码,然后将其复制到其他工作站。

答案1

虽然同意上面的评论,即有很多更简单的方法来处理这个问题,但这里对实际问题有一些帮助:

$MY_USER="anything"
HASH=$(ssh <source_server> "cat /etc/shadow | grep ^$MY_USER:" | awk -F: '{print $2}')
ssh <target_server> "echo '$MY_USER:$HASH' | chpasswd -e"

替换MY_USER特定用户的变量,并使用脚本的最后一行循环访问服务器。

其他一些评论:

  1. 您应该确保所有服务器使用相同的密码编码(还从被替换的条目创建备份,以防万一)。
  2. 如果您无权访问 root 密码,并且没有设置 nopasswd sudo 规则,这sudo -S可能会很有用。
  3. 更改密码之前,请确保您有其他访问方式。

相关内容