是否可以复制文件来备份用户密码,然后通过复制回来恢复它们?
该文件似乎/etc/shadow
是http://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
。因此,您需要自行决定这是否是您关心的风险。
我更喜欢使用命令来执行这种操作,但您可以使用简单的文本编辑器手动完成同样的事情。