web-dev-qa-db-ja.com

新規ユーザーはホームディレクトリにファイルを作成できません

goldenコマンドを実行して、Linuxで新しいユーザーadduserを作成しました。

その後、その新しいユーザーのsshキーを生成しようとしていますが、アクセス許可が拒否されるたびにエラーが発生します。

golden@machineA:~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/golden/.ssh/id_rsa):
Could not create directory '/home/golden/.ssh': Permission denied

何が悪いのか考えはありますか?

更新:

golden@machineA:~$ pwd
/home/golden
golden@machineA:~$ ls -l
total 0
golden@machineA:~$ ls -lrth
total 0
golden@machineA:~$ ls -lrtha
total 20K
-rw-r--r-- 1 10001 10001  675 May 10 11:54 .profile
-rw-r--r-- 1 10001 10001 3.5K May 10 11:54 .bashrc
drwxr-xr-x 2 10001 10001 4.0K May 10 11:54 .
-rw-r--r-- 1 10001 10001  220 May 10 11:54 .bash_logout
drwxr-xr-x 8 root  root  4.0K May 10 15:44 ..

pdate2:

golden@machineA:~$ ls -ld /home/golden
drwxr-xr-x 2 10001 10001 4096 May 10 11:54 /home/golden
golden@machineA:~$ id golden
uid=1001(golden) gid=1002(golden) groups=1002(golden)
1
user5447339

/home/goldenの所有者はユーザー10001であり、ユーザーgoldenではありません。通常、アカウントを作成すると、ユーザーのホームディレクトリが作成され、そのホームディレクトリはもちろんユーザーに属します。

ここでこれが発生しなかった理由は、おそらく/home/goldenがすでに存在していたためです。 adduserに渡したオプションに応じて、これについて通知されている場合とされていない場合があります。 /home/goldenが存在した理由は、おそらくユーザーID10001のgoldenというアカウントがあったため、このアカウントはホームディレクトリを削除せずに削除されたためです。これで、再びgoldenというユーザーアカウントがありますが、ユーザーIDは異なります。

これが発生し、ユーザー10001が存在しないと仮定すると、/home/goldenの所有権を新しいアカウントに変更できます。もちろん、これにより、新しいユーザーは古いユーザーが残したファイルを見ることができますが、あなたの場合、とにかく興味深いファイルはありません。

Sudo chown -R golden:golden /home/golden

アカウントを削除する場合は、そのホームディレクトリ(deluser --remove-home)を削除するか、名前を変更(mv /home/golden /home/golden.1001.archived)する必要があります。