首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在操作系统清理重新安装后挂载旧的/home目录?

如何在操作系统清理重新安装后挂载旧的/home目录?
EN

Ask Ubuntu用户
提问于 2014-03-11 03:45:09
回答 1查看 2.3K关注 0票数 7

在重新安装Ubuntu12.04LTS之前,我卸载了/home目录.在彻底重新安装之后,我重新创建了一些用户,并安装了ubuntu桌面包,然后重新挂载旧的/home目录。所有的文档都已经恢复,只要我用shell登录就没有问题。然而,当我尝试登录到GUI时,它只是重新加载登录屏幕。自从我将旧的/home目录包含在/etc/fstab中以来,这种情况就一直在发生。

为了遵循解决方案这里,我在每个用户的/home目录中查找.Xauthority文件,并注意到一些奇怪的东西,用户似乎混淆了。例如,ls -lah | grep Xauthority/home/bob中显示为:

代码语言:javascript
复制
-rw-------  1 emily emily   53 Nov 29 10:19 .Xauthority

诸若此类。我的猜测是,我没有按照与旧系统相同的顺序重新创建用户,所以当我挂载旧的/home目录时,事情变得很奇怪。不过!我需要能够插入旧的/home目录文件,因为它们是几个TB,而且我没有空间自由地传输它们,也不允许我删除任何东西。我该怎么做才能解决这个问题?

用新的/home/user目录替换每个旧的目录中的所有隐藏文件是个好主意吗?

更多信息

ls -l /home的内容(在挂载旧/home之后);注意:lost+found不应该是用户。

代码语言:javascript
复制
total 36
drwxr-xr-x 22 bob   bob    4096 Mar 11 12:23 alice
drwxr-xr-x 44 marc  marc   4096 Mar 11 12:21 emily
drwxr-xr-x 23 1004  1004   4096 Jul 29  2013 bob
drwxr-xr-x  4 1005  1005   4096 Jul 30  2013 ken
drwx------  2 root  root  16384 Mar 27  2012 lost+found
drwxr-xr-r 40 emily emily  4096 Mar 11 12:49 marc

cat /etc/passwd的内容(仅限于上述用户):

代码语言:javascript
复制
root:x:0:0:root:/root:/bin/bash
marc:x:1000:1000:marc,,,:/home/marc:/bin/bash
emily:x:1001:1001:emily,,,:/home/emily:/bin/bash
bob:x:1002:1002:bob,,,:/home/bob:/bin/bash
ken:x:1003:1003:ken,,,:/home:ken:/bin/bash

注意:用户alice在操作系统重新安装后没有重新创建,因为帐户不再需要。

lsblk的输出:

代码语言:javascript
复制
NAME        MAJ:MIN RM  SIZE        RO  TYPE    MOUNTPOINT
sda     8:0     0   931.5G  0   disk
+sda1   8:1     0   285M        0   part    
+sda2   8:2     0   1K      0   part
+sda5   8:5     0   18.6G       0   part
+sda6   8:6     0   93.1G       0   part    /home
+sda7   8:7     0   93.1G       0   part
+sda8   8:8     0   698.4G          0   part    /home/marc/Data
+sda9   8:9     0   9.3G        0   part    [SWAP]
+sda10  8:10        0   18.6G       0   part    /   
sr0     11:0        1   1024M       0   rom
sdb     8:16        0   1.8T        0   disk
+sdb1   8:17        0   1.8T        0   part    /home/marc/Data2
sdc     8:32        0   1.8T        0   disk
+sdc1   8:33        0   200M        0   part    
+sdc2   8:34        0   465.8G          0   part    /home/marc/USB_Disk/Disk1
+sdc3   8:35        0   465.8G          0   part    /home/marc/USB_Disk/Disk2
+sdc4   8:36        0   465.8G          0   part    /home/emily/Data
+sdc5   8:37        0   465.6G          0   part    /var/www
sdf     8:80        0   3.7T        0   disk
+sdf1   8:81        0   1.8T        0   part    /home/ken
+sdf2   8:82        0   1.8T        0   part    /home/bob
sde     8:64        1   29.8G       0   disk
+sde1   8:65        1   29.8G       0   part    [SWAP]

如您所见,用户marc在许多不同的磁盘和分区上粉碎了文档。

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2014-03-15 16:43:24

ln -n将向您展示文件集认为用户的UID和GID应该是什么。这是我系统里的一个例子。

代码语言:javascript
复制
$ ls -ln /home/
total 12
drwxr-xr-x  5  111  120 4096 Mar 15 10:11 hts
drwxr-xr-x 11 1000 1000 4096 Mar 15 12:34 oli
drwxr-xr-x  4 1001 1001 4096 Mar 13 08:46 test

在这个系统中,oli有正确的UID为1000,但如果我做了一些事情,使它是1001,我可以简单地使用usermod来打通它。假设我想交换olitest的S UID,这是一个三跳游戏,因为两个用户不能共享一个UID,他们可以共享一个组。

代码语言:javascript
复制
sudo usermod -u 1099 -g 1000 test
sudo usermod -u 1001 -g 1001 oli
sudo usermod -u 1000 test

注意:如果您的当前用户是变更区中的用户之一,那么在启动并以根用户身份运行所有内容之前,请先使用sudo su。记住安全关机了。您不希望在此过程中半途而废,并让您的sudo特权错误到您身上。

您将需要玩这种芭蕾,直到/home/中的用户名与它们的UID(如ls -ln /home中所示)一致为止。或者,您可以使用几个find调用来修改所有文件,但我个人认为这是对时间的极大浪费。通过用户系统集中解决这一问题更容易、更快,而且破坏性更小。

下次记得事先检查UID。--uid nnn关于adduser的论点将使这一过程无痛。

票数 3
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/432535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档