备份和恢复用户密码

备份和恢复用户密码

是否可以复制文件来备份用户密码,然后通过复制回来恢复它们?

该文件似乎/etc/shadowhttp://en.wikipedia.org/wiki/Passwd#Shadow_file

我的目的是临时更改用户密码sudo passwd user。我不知道原始密码。然后,我将通过用/etc/shadow以前的副本替换文件来将其恢复为原始密码。即

sudo cp /etc/shadow /etc/shadow.backup
sudo passwd user
sudo cp /etc/shadow.backup /etc/shadow
sudo rm /etc/shadow.backup

这可能吗?或者我会毁掉这个账户吗?

答案1

只要没有其他变化发生/etc/shadow 或者 /etc/passwd,这应该没问题。如果添加、删除或修改了用户,然后您恢复旧版本,则可能会有麻烦。如果您能保证没有人会执行涉及/etc/passwd或的任何操作,/etc/shadow那就没问题了。

您还可以编辑/etc/shadow,将加密的密码复制到安全的地方,更改密码,然后在需要时将密码恢复为原来的密码。这样您就不需要再动任何其他东西了。

# Obtain the old password and save it in a file
echo $(sudo grep $USER /etc/shadow | cut -f 2 -d ':') >/safe/encrypted-pass
# Here, change the password, do whatever you need, then..
sudo usermod -p $(cat /safe/encrypted-pass) $USER

请注意,“不建议使用,因为列出进程的用户将可以看到密码(或加密密码)”这个-p选项usermod。因此,您需要自行决定这是否是您关心的风险。

我更喜欢使用命令来执行这种操作,但您可以使用简单的文本编辑器手动完成同样的事情。

相关内容