Mar*_*tin 6 installation backup users home-directory
假设我有一个home.tgz并且想把它放在一个新安装的 ubuntu 盒子上。
在解压文件之前我需要做什么?创建用户?用户 ID 呢?团体?加密呢?
/home/sid)如果您想简化流程,您需要做几件事。下面我假设用户名为mark。
cd ~mark && id mark > mark.identity/home/mark那么您会想要cd /home && tar jcpf mark.tar.bz2 markcd /home && tar xjpf mark.tar.bz2)#!/bin/bash
用户=“${1}”
如果 [ !-e "${USER}".身份]; 然后
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}
菲
完毕
useradd -g "${GD}" -G "${GLIST}" "${USER}"
请注意,我只是在这里写的,我还没有测试过。
是的,它假设所有组都存在。扩展脚本来检查每个组是否存在并在不存在时创建它并不困难。上述更改应该可以解决这个问题。
另请注意,这不会处理通过 sudo 获得的特权。如果您有本地电子邮件或其他任何东西,它也无济于事。它要做的就是为用户设置与以前相同的组。另外,如果目录已经存在,它会覆盖它,因此需要注意。
在我的测试虚拟机中,我添加了 bob (1001) 和 alice (1002)。我删除了 bob 并添加了 joe (1001)。对不起我错了。您只需将每个用户的主文件夹所有者和组重新分配给每个用户即可。
这可能看起来很乏味,但这只是 3 个步骤的详细解释。
您需要超级用户权限来执行这些维护任务,因此我们在每个命令前面加上 前缀sudo,这给了我们这些权限。
在我们新安装的 Ubuntu 上:
sudo adduser alicesudo chown -R alice\:alice /home/alice解释一下命令:
-R意味着递归地应用所有权,alice\:alice 是我们为文件指定新文件的方式owner\:group,并且我们告诉 chown 在 上执行此任务/home/alice。现在 /home/alice 下的所有文件都将属于她,她访问她的文件应该没有问题。希望这更有意义。
创建同名的新用户帐户,然后它将具有与旧用户帐户相同的 UID。我记得在某处的邮件列表上读过它,但我找不到阅读它的来源。