Martin Asked: 2010-10-30 00:17:26 +0800 CST2010-10-30 00:17:26 +0800 CST 2010-10-30 00:17:26 +0800 CST 恢复主目录的步骤?(用户 ID 等) 772 假设我有一个home.tgz并且想把它放在一个新安装的 ubuntu 盒子上。 在解压文件之前我需要做什么?创建用户?用户 ID 呢?团体?加密呢? home-directory backup installation users 2 个回答 Voted Cry Havok 2010-10-30T02:23:54+08:002010-10-30T02:23:54+08:00 创建用户帐户,可选择使用与以前相同的 UID 和 GID,并且主目录位于相同位置(例如/home/sid) 设置密码 将文件解压到用户的主目录 如果您没有使用与以前相同的 UID 和 GID,请更改所有权 将用户添加到所需的任何其他组 如果你想简化这个过程,你需要做几件事。在下文中,我将假设用户被称为mark. 记录用户的组成员身份:cd ~mark && id mark > mark.identity 从它的父目录备份主目录 - 例如,如果它是/home/mark那么你会想要cd /home && tar jcpf mark.tar.bz2 mark 在新主机上将其还原到 /home ( cd /home && tar xjpf mark.tar.bz2) 识别组和用户名以及组成员身份,然后恢复它们。这应该是相当可编写脚本的,有点像: #!/bin/bash USER="${1}" 如果 [ !-e "${USER}".identity ]; 然后 echo "没有身份文件" 出口 菲 GD=`awk '{ print $2 "${USER}".identity }' | sed -e "s/.*(//g" -e "s/).*//g"` GLIST=`awk '{ print $NF "{USER}".identity }' | sed -e "s/[az]*=//g" -e "s/[0-9]*(//g" -e "s/)//g"` 对于 ${GD} ${GLIST} 中的 GROUP;做 获取组 ${GROUP} >/dev/null 状态=${?} 如果 [ ${STATUS} -ne 0 ]; 然后 组添加 ${GROUP} 菲 完毕 用户添加 -g "${GD}" -G "${GLIST}" "${USER}" 请注意,我只是在这里写了,我没有测试过。 是的,它假定所有组都存在。扩展脚本以检查每个组是否存在并在不存在时创建它并不难。上述更改应注意这一点。 还要注意,这不会处理通过 sudo 获得的特权。如果您有本地电子邮件或其他任何东西,它也无济于事。它所要做的就是为用户设置与以前相同的组。此外,如果一个目录已经存在,它会覆盖它,所以需要注意。 invert 2010-10-30T03:23:59+08:002010-10-30T03:23:59+08:00 在我的测试虚拟机中,我添加了 bob (1001) 和 alice (1002)。我删除了 bob 并添加了 joe (1001)。对不起我错了。您只需将每个用户的主文件夹所有者和组重新分配给每个用户。 这可能看起来很乏味,但这只是对 3 个步骤的详细说明。 您需要超级用户权限来执行这些维护任务,因此我们在每个命令前加上sudo,这为我们提供了这些权限。 在我们新的 Ubuntu 安装上: #1 创建用户帐户:sudo adduser alice #2 将备份的文件解压到她的新主目录中 #3 让 alice 成为文件的所有者:sudo chown -R alice\:alice /home/alice 解释命令: #1 adduser 为我们创建 /home/alice 目录(除其他外) #3 选项-R意味着递归地应用所有权,alice\:alice 是我们owner\:group为文件指定新的方式,我们告诉 chown 在/home/alice. 现在 /home/alice 下的所有文件都属于她,她应该可以毫无问题地访问她的文件。希望这更有意义。 创建具有相同名称的新用户帐户,然后它将具有与旧用户帐户相同的 UID。我记得在某处的邮件列表上读到过它,但我找不到我读到它的来源。
/home/
sid
)如果你想简化这个过程,你需要做几件事。在下文中,我将假设用户被称为
mark
.cd ~mark && id mark > mark.identity
/home/mark
那么你会想要cd /home && tar jcpf mark.tar.bz2 mark
cd /home && tar xjpf mark.tar.bz2
)请注意,我只是在这里写了,我没有测试过。
是的,它假定所有组都存在。扩展脚本以检查每个组是否存在并在不存在时创建它并不难。上述更改应注意这一点。
还要注意,这不会处理通过 sudo 获得的特权。如果您有本地电子邮件或其他任何东西,它也无济于事。它所要做的就是为用户设置与以前相同的组。此外,如果一个目录已经存在,它会覆盖它,所以需要注意。
在我的测试虚拟机中,我添加了 bob (1001) 和 alice (1002)。我删除了 bob 并添加了 joe (1001)。对不起我错了。您只需将每个用户的主文件夹所有者和组重新分配给每个用户。
这可能看起来很乏味,但这只是对 3 个步骤的详细说明。
您需要超级用户权限来执行这些维护任务,因此我们在每个命令前加上
sudo
,这为我们提供了这些权限。在我们新的 Ubuntu 安装上:
sudo adduser alice
sudo chown -R alice\:alice /home/alice
解释命令:
-R
意味着递归地应用所有权,alice\:alice 是我们owner\:group
为文件指定新的方式,我们告诉 chown 在/home/alice
.现在 /home/alice 下的所有文件都属于她,她应该可以毫无问题地访问她的文件。希望这更有意义。
创建具有相同名称的新用户帐户,然后它将具有与旧用户帐户相同的 UID。我记得在某处的邮件列表上读到过它,但我找不到我读到它的来源。