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)
所有者/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)。