터미널을 열면“이름이 없습니다!”라는 메시지가 나타납니다


39

갑자기 오늘 아침에 터미널 창을 열면 다음과 같은 결과가 나타납니다.

I have no name!@macbook:~$ whoami
502

** 나는 숫자가 아니다! 나는 인간이다! **

무엇을 제공합니까? 내 이름을 되 찾으려면 어떻게해야하는지 아는 사람이 있습니까?

여기에 두 가지 문제가 있다고 가정합니다. 하나는 내 호스트 이름이 정의되지 않았고 다른 하나는 whoami가 내 이름을 숫자로보고한다는 것입니다.


2
BTW-관심있는 사람들을 위해, 나는 로그 아웃 (command-shift-Q)하고 다시 로그인하고 터미널을 다시 시작하면 문제가 사라졌습니다! 내 McKnowledge의 상태를 발전시키는 것 외에 다른 이유가 없다면이 원인에 여전히 관심이 있습니다.
ipd

프롬프트에 컴퓨터 호스트 이름이 표시되는 이유 또는 컴퓨터의 이름이“이름이 없습니다!”인 이유를 묻고 있습니까?
Chris 페이지

왜 갑자기 내 bash 프롬프트에 "이름이 없습니다!"라고 표시되는지 묻습니다. 호스트 이름이 아니라 아마도 whoami내 이름이 아닌 내 번호를보고 하는 우연의 일치 일 것 입니다.
ipd

1
무엇을 hostname하고 id -p돌아 옵니까?
CajunLuke

내 시스템이 정상으로 돌아 왔습니다. 좋은 제안이지만, 다시 발생하면 둘 다 확인하겠습니다!
ipd

답변:


24

메모리에 문제가있어 사용자 ID (502)와 사용자 이름 (ipd) 간의 매핑이 손실되었습니다. 정확히 무엇이 원인인지 확실하지 않지만 (보통 중단 된 시스템 프로세스를 수동으로 종료했을 때) 발생하는 것을 보았습니다. launchd아마도?

매핑이 손실 whoami되었으므로 ID를 사용자 이름으로 변환 할 수 없으므로 ID를 반환하며 프롬프트의 기본값은 "이름이 없습니다!"입니다. 메시지가 효과적으로 때문에 하지 않는 이름이있다.

로그 아웃했다가 다시 고칠 수 있지만 다시 시작하는 것이 가장 좋습니다 (발견 한대로).

기본적으로 이는 다른 문제의 증상이며 그 자체로는 문제가 아닙니다.


1
나는 그 매핑이 어떻게 손실되는지 설명 할 수 있기를 원하지만 그것을 알아낼만큼 깊이 파고 들어 본 적이 없다.
Bobson

이것은 나에게 다시 일어났다. 나는 죽었고 launchd, 지금 501은 사용하지 못하게되었다 sudo. 여전히 launchd다시 시작 할지 또는 실행하지 않는 것이 영향을 줄지 여전히 알 수 없습니다 .
밥슨

그만한 가치가 있기 때문에 Linux 시스템 에서이 문제가 발생했기 때문에 근본 원인이 bash에 있다고 생각합니다. strings /bin/bash | grep "I have"
Digital Trauma

이것은 또한 whoami 또는 그 종속성이없는 일반적인 샌드 박스에서 발생합니다. which whoami내 경우 ldd /usr/bin/whoami종속성을 찾으려고 했는지 , 손상이 있는지 또는 손상된 지 확인하십시오.
RomuloPBenedetti

11

나는 그것이 오래된 스레드 인 것을 보았지만 여기 에이 문제에 대한 해결책이 있습니다 (전체 컴퓨터를 다시 시작하지 않고).

문제는 opendirectoryd데몬에 있으며 2011 년 초부터 가장 빠른 보고서 날짜입니다. 데몬을 다시 시작하면 (고속 사용자 전환을 통해 사용자를 관리자로 전환) 문제가 해결됩니다.

이 답변을 쓰는 ​​동안 Serverfault에서 비슷한 질문을 찾았으며 여기 에서도 내 답변을 다루고 있습니다.


이것은 나를 위해 작동하지 않았습니다. 내 증상은 아마도 약간 다릅니다. 여러 터미널 창이 열려 있고 기존의 모든 터미널 창에서 사용자 이름 매핑이 손실되었지만 창 마다 문제가없는 것 같습니다. opendirectoryd를 종료 (일명 다시 시작)해도 도움이되지 않았습니다. "실패한"터미널에서 com.apple.sharepoint.group.2access_bpf에 대한 그룹 매핑이 누락 되었지만에 나열된 그룹은 없습니다 /etc/group. 오래된 터미널 프로세스 (및 다른 것을 아는 사람)는 opendirectoryd 자체가 실패하지 않고 opendirectoryd에 대한 액세스 권한을 잃어 버린 것 같습니다.
ghoti

3

대기 모드에서 다시 시작할 때 (예 : 랩탑 열기) 무작위로 발생합니다. 로그 아웃 또는 재부팅만으로 문제를 해결할 수 있습니다. 원인이 무엇인지 정확히 모르겠습니다. 내가 입력하자마자 지금 일어나고 있습니다. 원래 게시물의 주석이 물었을 때 나는 달려 가서 id -p추락했다. (충돌 보고서 : http://pastebin.com/nmFFQELq )

콘솔 명령 :

whoami — 501을 반환

id -p — 충돌

cat /etc/passwd — 내 사용자가 문서에 없습니다.

모든 ssh 시도는 오류와 함께 실패합니다.

당신은 존재하지 않습니다, 저리가요!

또한 깨어 난 상태에서 콘솔을 확인했는데 Dropbox와 같은 프로그램에서 임의의 "소켓이 연결되지 않았습니다"라는 오류가 발생했습니다 (정상적인 것으로 생각되며 무선으로 즉시 연결되지 않음). 그래도 흥미로운 오류가 나타납니다.

12/12/12 8 : 37 : 09.045 PM coreservicesd : _scserver_ServerCheckin : 클라이언트 uid 유효성 검사 실패; getpwuid (501) == NULL

12/12/12 8 : 37 : 09.400 오후 coreservicesd : _scserver_ServerCheckin : 클라이언트 uid 유효성 검사 실패; getpwuid (501) == NULL

여전히 원인이 무엇인지 확실하지 않지만 이러한 진단을 공유한다고 생각했습니다.

10.7.3이 설치된 2009 년 중반 MacBook Pro에 있습니다.


1

파일의 권한 /etc/passwd이 다음과 같이 설정되어 있는지 확인하십시오 .

-rwxr--r--

passwd파일 에서 사용자 이름을 읽기 때문 입니다.


744가 아니라 644였습니다. 744로 설정해도 도움이되지 않았습니다.
ejmin

0

iterm => preferences => URL_handler를 사용하고 whoami를 내 사용자 이름에 연결하여 문제를 해결했습니다. iterm에서 다시 시작한 후 문제가 더 이상 없습니다.


0

나는 오늘 (Lion 10.7.5)이 똑같은 당황스러운 문제를 겪었고 일부 블로그dscacheutil -flushcache 의 의견에서 제안한 것처럼 나를 위해 고쳤 습니다 .


-1

내 문제는 passwd 아카이브의 권한입니다. 이전 권한은 -rw ------- 1 root root 1280 Jun 9 15:41 passwd "chmod a + r / etc / passwd"명령을 사용했으며 이제는 모든 사용자입니다. 이 아카이브를 읽을 수 있습니다. -rw-r--r-- 1 root root 1280 Jun 9 15:41 passwd 사용자를 로그 아웃하고 시도하십시오. =)


-2

터미널의 홈 폴더로 이동하여를 실행하십시오 . ~/.bashrc.

효과가있다!!


5
.bashrc를 다시 소싱하면 여기서 문제가 해결되지 않는다고 생각합니다.
nohillside
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.