在 Linux 中备份用户帐户

在 Linux 中备份用户帐户

我最近创建了一个新的 Ubuntu 系统。我创建了 5 个用户,分别名为ellie、、和。本质上,我想要做的是将所有这些用户的备份创建为 TAR 和 GZIPPED 存档。这将包括他们的主目录文件以及用户名和密码。jamesjohntomemily

由于此系统运行的是 Ubuntu,因此已安装 tar。该如何操作?

我的电脑上插着一个名为 的 USB ESD-USB。如果可能的话,我希望将备份定向到这个 USB。再说一次,我是新手,所以我不太清楚自己在做什么。任何帮助都非常感谢!

答案1

您可以使用以下命令:

cd /home
tar cvfz /media/ESD-USB/backup.tar.gz {ellie,james,john,tom,emily}

但是,最好有多个备份文件,每个用户一个:

cd /home
for d in {ellie,james,john,tom,emily}
do
  tar cvfz /media/ESD-USB/backup-${d}.tar.gz $d
done

我假设你的 USB 驱动器安装在 上/media/ESD-USB。该命令mount可以确认。

如果 中没有其他用户/home*{ellie,james,john,tom,emily}会很方便,并且在创建时会匹配第 6 个用户。

您可以有变体,例如tar cvfz /media/ESD-USB/backup.tar.gz /home/{ellie,james,john,tom,emily},不完全等同。这取决于您是否想home在备份文件中添加前缀。

但是,您应该尝试tar cvfz file.tar.gz directory使用一个小目录,然后tar xvfz file.tar.gz提取备份文件,看看效果如何。熟悉备份过程和恢复过程很重要。

对于密码,

cd /home
grep '^\(ellie\|james\|john\|tom\|emily\):' /etc/passwd > passwd-extract
grep '^\(ellie\|james\|john\|tom\|emily\):' /etc/shadow> shadow-extract
grep '^\(ellie\|james\|john\|tom\|emily\):' /etc/group> group-extract

tar cfvz /media/ESD-USB/passwd.tar.gz \
   passwd-extract shadow-extract group-extract
rm passwd-extract shadow-extract group-extract

请注意group-extract,仅保存与用户同名的组。但不保存用户的成员资格。缺少了一些东西。

可以使用以下命令提取完整的组成员信息: grep '\(:\|,\)\(ellie\|james\|john\|tom\|emily\)' /etc/group> group-extract但如果我们必须保留其他成员信息,则恢复可能会有点困难。(整个相关组都会被导出,包括不在这 5 个用户之间的成员)。

在恢复组的系统上,我们必须避免更改新安装系统中的系统组号。其中一些数字是此提取的一部分。

在系统上,我有组video:x:44:loyer。因此loyer,我可能希望备份我在该组的成员身份。但在新系统上,如果我有 42 而不是 44,我希望loyer从备份中恢复名称,但保留 44。然后,部分保存(和恢复)组可能会很棘手。

相关内容