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
).