내 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를 호출합니다.