web-dev-qa-db-ja.com

OSクリーン再インストール後に古い/ homeディレクトリをマウントする方法は?

Ubuntu 12.04 LTSを再インストールする前に、/ homeディレクトリをアンマウントしました。クリーンな再インストールの後、一部のユーザーを再作成し、ubuntu-desktopパッケージをインストールしてから、古い/ homeディレクトリを再マウントしました。すべてのドキュメントが復元され、シェルでログインしている限り問題ありません。ただし、GUIにログインしようとすると、ログイン画面が再ロードされます。これは、/etc/fstabに古い/ homeディレクトリを含めて以来ずっと発生しています。

解決策を追おうとして here 、私はすべてのユーザーの/homeディレクトリで.Xauthorityファイルを探し、奇妙なことに気づきました。ユーザーは混乱しているようです。たとえば、ls -lah | grep Xauthority/home/bobは次のように表示されます。

-rw-------  1 emily emily   53 Nov 29 10:19 .Xauthority

等々。私の推測では、古いシステムと同じ順序でユーザーを再作成しなかったため、古い/homeディレクトリをマウントしたときに事態がおかしくなりました。しかしながら!古い/homeディレクトリファイルをそのままプラグインできる必要があります。それらはいくつかのTBであり、それらをあちこちに自由に転送するスペースがないため、許可されていません何でも削除します。これを修正するにはどうすればよいですか?

古い/home/userディレクトリ内のすべての隠しファイルを新しいもので置き換えるのは良い考えですか?

[追加情報]

ls -l /homeの内容(古い/homeをマウントした後);注:lost+foundはユーザーではないはずです。

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の内容(上記のユーザーに限定):

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

注:アカウントが不要になったため、OSの再インストール後にユーザーaliceは再作成されませんでした。

lsblkの出力:

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には、さまざまなディスクとパーティションでドキュメントが粉砕されています。

8
biohazard

ln -nは、filesytemがユーザーのUIDとGIDがどうあるべきかを示します。これが私のシステムの例です。

$ 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のUIDを入れ替えたいとしましょう。 2人のユーザーがUIDを共有できないため、これは3ホップのゲームです。ただし、グループを共有できます。

Sudo usermod -u 1099 -g 1000 test
Sudo usermod -u 1001 -g 1001 oli
Sudo usermod -u 1000 test

ワンノート:現在のユーザーがチェンジアラウンドのユーザーの1人である場合は、Sudo suを開始してからすべてをルートとして実行します。安全がオフになっていることを覚えておいてください。このプロセスの途中で取得して、Sudo特権をバグアウトしたくはありません。

/ home /のユーザー名がUIDと一致するまで(ls -ln /homeに示すように)この種のバレエを演奏する必要があります。あるいは、いくつかのfindコールですべてのファイルを変更することもできますが、個人的にはこれは大きな時間の無駄だと思います。これをユーザーシステムを介して一元的に修正する方が簡単、迅速、潜在的に破壊的ではありません。

次回は、UIDを事前に確認することを忘れないでください。adduser--uid nnn引数は、これを簡単にします。

3
Oli