迁移到新的用户主目录

迁移到新的用户主目录

我在当前用户的配置方面遇到了多个问题。在新用户帐户下这些问题都得到了解决。现在我想将所有数据从旧用户移动(不是复制,因为磁盘空间)到新用户。我还想有选择地将一些没有问题的应用程序设置文件移至新用户。

为此,如何使旧用户的整个用户文件夹可供新用户读写?

答案1

将主目录的所有权更改chown为新用户。

chown -R newuser:newuser /home/olduser

答案2

我猜测“多个问题”实际上与应用程序特定的配置相关。普通帐户不应该有任何依赖于主目录位置的内容。

不过,您所描述的问题很难在不产生任何问题的情况下解决。复制非“点”文件以及标准 shell 启动文件可能是一个好的开始,但您仍然有可能会错过重要的点文件或携带太多文件。这必须是一个反复试验的解决方案。

假设您已经创建了新帐户。为了方便起见,我将使用变量来标识新旧用户目录。将这一切执行为root

olduser=olduser          # For example, « olduser=sarah »
newuser=newuser

oldgroup=oldgroup        # For example, « oldgroup=sarah » or « oldgroup=users »
newgroup=newgroup

oldhome=/home/olduser    # For example, « oldhome=/home/sarah »
newhome=/home/newuser

将文件从旧目录移动到新目录:

mv "$oldhome"/* "$newhome/"
mv -f "$oldhome"/.{bashrc,bash_profile,profile,ssh} "$newhome/"

查看剩余的文件,并移动 ( mv) 您想要保留的文件:

ls -RA "$oldhome"

最后,更改新用户的所有权和组:

find "$newhome" -user "$olduser" -exec chown "$newuser" {} +
find "$newhome" -group "$oldgroup" -exec chgrp "$newgroup" {} +

相关内容