我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
是用户 10001,而不是用户golden
。通常,当您创建帐户时,会为用户创建一个主目录,并且该主目录当然属于该用户。
这种情况没有在这里发生的原因可能是/home/golden
已经存在了。根据您传递给 的选项adduser
,它可能会也可能不会告诉您这一点。存在的原因/home/golden
大概是因为曾经有一个golden
用户id为10001的账户,然后这个账户被删除了,而没有删除主目录。现在再次调用了一个用户帐户golden
,但使用了不同的用户 ID。
假设发生了这种情况,并且用户 10001 不再存在,您可以将 的所有权更改/home/golden
为新帐户。当然,这允许新用户查看旧用户留下的文件,但在您的情况下,无论如何都没有有趣的文件。
sudo chown -R golden:golden /home/golden
如果删除帐户,则应删除其主目录 ( deluser --remove-home
) 或重命名它 ( mv /home/golden /home/golden.1001.archived
)。