可以临时更改密码吗?

可以临时更改密码吗?

我有一个有多个用户的Linux系统。我不知道他们的密码,也不想知道他们。

我必须通过 SSH 批量复制他们的一些目录以及他们的帐户和密码。

我的想法是备份/etc/shadow,然后为每个用户(我知道的密码,如“tmppass”)用新密码修改它,进行备份,然后/etc/shadow用旧文件替换它。

那行得通吗?如果是这样,我如何生成密码? (密码类似于 $1$xxxxxx/xxxxx)。

答案1

只需备份文件/etc/shadow,然后使用以下命令更改用户密码passwd

  • 备份影子文件:

    sudo cp /etc/shadow /etc/shadow.bak
    
  • 更改您要访问的用户的密码(例如testuser):

    sudo passwd testuser
    
  • 完成后,从备份中恢复 /etc/shadow 文件:

    sudo mv /etc/shadow.bak /etc/shadow
    

    请注意,所有密码都应重置为备份时的密码。

适用于 Fedora 19

注意不是您所要求的,但通过以下方式访问这些用户会更容易:

sudo -u testuser bash

这只需要使用 sudo 进行身份验证,而不需要以该用户身份进行身份验证。

答案2

虽然这是可能的,但这很少是正确的做事方式。我强烈怀疑,往好里说,你是在让你的生活变得过于复杂;在最坏的情况下,当你可以做安全的事情而不需要额外的费用时,你会做一些不安全的事情。

SSH 允许客户端使用密钥而不是密码进行身份验证。这对于自动化使用特别有用:创建密钥对,将私钥存储在没有密码的文件中,然后使用它连接到远程主机(您已预先将公钥添加到授权列表中)。请小心使用无密码的私钥文件,因为拥有它可以允许登录帐户;您可以对可以使用密钥执行的命令以及接受密钥的 IP 地址进行限制,以减少泄露的密钥文件的影响。

我想不出在您描述的场景中不使用密钥的充分理由。

相关内容