新用户无法在其主目录中创建文件

use*_*339 2 permissions home files accounts

golden通过运行adduser命令在 linux 中创建了一个新用户。

之后,我尝试为该新用户生成 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
Run Code Online (Sandbox Code Playgroud)

有什么想法有什么问题吗?

更新:

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 ..
Run Code Online (Sandbox Code Playgroud)

更新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)
Run Code Online (Sandbox Code Playgroud)

Gil*_*il' 5

所有者/home/golden是用户 10001,而不是用户golden。通常,当您创建帐户时,这会为用户创建一个主目录,而该主目录当然属于该用户。

这里没有发生这种情况的原因可能/home/golden已经存在。根据您传递给 的选项adduser,它可能会也可能不会告诉您这一点。/home/golden存在的原因大概是因为曾经有一个golden用户名为10001的帐户,然后在没有删除主目录的情况下删除了该帐户。现在有一个用户帐户golden再次被调用,但具有不同的用户 ID。

假设发生了这种情况,并且用户 10001 不再存在,您可以将所有权更改/home/golden为新帐户。当然,这允许新用户查看旧用户留下的文件,但在您的情况下,无论如何都没有有趣的文件。

sudo chown -R golden:golden /home/golden
Run Code Online (Sandbox Code Playgroud)

如果您删除一个帐户,您应该删除它的主目录 ( deluser --remove-home) 或重命名它 ( mv /home/golden /home/golden.1001.archived)。