SSH 구성: chown 사용자 이름:그룹: 잘못된 사용자라고 표시됨

SSH 구성: chown 사용자 이름:그룹: 잘못된 사용자라고 표시됨

내 Ubuntu16.04.4 서버의 사용자 이름: greycodes

오류 출력:

chown: invalid user: 'vagrant:vagrant'

OpenSSH에 대한 파일 권한을 설정하고 있습니다. 내가 원하는 것은 내 사용자 이름을 회색 코드로 유지하고 사용자 이름 vagrant 대신 이 사용자 이름을 사용하여 권한을 정의하는 것입니다.

chown -R vagrant:vagrant .ssh

나는 다음과 같이 쓰여진 것으로 이해합니다.

chown -R username:group file name

나는 또한 먼저 시도했다:

chown -R graycodes:vagrant .ssh

하지만 작동하지 않습니다. 내 서버 사용자 이름을 vagrant로 설정할 수밖에 없나요?

나는 "vagrant" 그룹에 "graycodes"를 추가하는 것이 도움이 될 것이라고 믿습니다.

$ groups
$ sudo usermod -a -G vagrant $USER
$ exec su -l $USER
$ groups 

답변1

고려해야 할 사항이 몇 가지 있으며 귀하의 질문에 몇 가지 구멍을 메울 수 있기를 바랍니다.

chown첫째, 엔터티를 할당하려는 사용자 및 그룹은 다음을 사용할 때 이어야 합니다.존재하다. 그렇지 않으면 오류가 발생합니다. 먼저 실제로 존재하는지 확인하십시오.

둘째, 사용하려면 chown몇 가지 강화된 능력이 필요합니다. 본인은 일반 사용자로서 파일 등의 소유권을 다른 사용자에게 양도할 수 없습니다. 이것이 무엇을 의미하는지, 이것이 당신이 원하는 것인지 확인하십시오.

셋째, 자신이 하고 싶은 일이 무엇인지 확실히 이해하세요. chown하나 이상의 파일 시스템 엔터티의 소유권을 지정한 사용자 및 그룹으로 변경합니다.

답변2

내 경우에는 컨테이너에서 chown을 실행하고 있고 nscd가 호스트에서 실행 중이었기 때문입니다. 컨테이너와 호스트에 따라 /etc/passwd와 사용자가 다르기 때문에 사용자 이름을 확인할 수 없기 때문에 chown이 실패합니다. nscd 데몬 중지 문제가 해결된 후 chown은 로컬 /etc/passwd 파일을 사용하는 것으로 보입니다.

매뉴얼 페이지에서https://linux.die.net/man/8/nscd, 이름을 얻으십시오 (https://man7.org/linux/man-pages/man3/getgrnam.3.html) 작성자: chown(https://github.com/coreutils/gnulib/blob/fcdf335e093e245e384874254ec897c97430ccf2/lib/userspec.c#L202) 먼저 nscd를 호출합니다.

관련 정보