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 ..
アップデート2:
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
の所有者は/home/golden
userではなくuser10001ですgolden
。通常、アカウントを作成すると、そのユーザーのホームディレクトリが作成され、もちろんそのユーザーの所有です。
ここでこれが起こらないのは、おそらく/home/golden
すでに存在しているからです。渡すオプションによっては、adduser
これを伝えることもできない場合もあります。存在する理由は、/home/golden
おそらくユーザーIDが10001のアカウントを持っていましたが、golden
ホームディレクトリを削除せずにこのアカウントを削除したからです。これでユーザーアカウントが再度呼び出されますが、golden
別のユーザーIDを使用します。
これが発生し、ユーザー10001がもう存在しないと仮定すると、所有権を/home/golden
新しいアカウントに変更できます。もちろん、これにより、新しいユーザーは古いユーザーが残したファイルを見ることができますが、あなたの場合にはとにかく興味深いファイルはありません。
sudo chown -R golden:golden /home/golden
アカウントを削除する場合は、そのホームディレクトリを削除するdeluser --remove-home
か()、名前を変更する必要があります(mv /home/golden /home/golden.1001.archived
)。