Внезапно сегодня утром я открываю окно терминала и получаю следующее:
I have no name!@macbook:~$ whoami
502
** Я не число! Я человек! **
Что дает? Кто-нибудь знает, что мне нужно сделать, чтобы вернуть свое имя?
Я предполагаю, что здесь есть две проблемы, одна из которых заключается в том, что мое имя хоста не определено, а другая в том, что whoami сообщает мое имя как число.
Что-то в памяти было повреждено, и сопоставление между вашим идентификатором пользователя (502) и вашим именем пользователя (ipd) было потеряно. Я видел, как это происходило (обычно, когда я вручную убивал зависшие системные процессы), хотя я не уверен, что именно вызывает это. launchd
может быть?
Поскольку это сопоставление утеряно, whoami
невозможно преобразовать ваш идентификатор в имя пользователя, поэтому он возвращает идентификатор, а ваше приглашение по умолчанию — «У меня нет имени!» сообщение, потому что у вас фактически нет имени.
Выход из системы и повторный вход в нее могут исправить ситуацию, но перезапуск — лучший способ (как вы обнаружили).
По сути, это симптом другой проблемы, а не проблема сама по себе.
launchd
, и я был сейчас 501
, что помешало мне использовать sudo
. Я до сих пор не знаю, launchd
перезапустится ли он сам или на что еще повлияет его отсутствие.strings /bin/bash | grep "I have"
which whoami
посмотреть, где он находится, в моем случае я ldd /usr/bin/whoami
нашел зависимости, посмотреть, есть ли они у вас и не повреждены ли они.Я вижу, что это старая тема, но вот решение этой проблемы (без перезагрузки всего компьютера).
Проблема заключается в opendirectoryd
демоне, и самые ранние отчеты датируются началом 2011 года. Перезапуск демона (переключение пользователей на администратора с помощью быстрого переключения пользователей) устраняет проблему.
Во время написания этого ответа я нашел аналогичный вопрос в Serverfault здесь , который также охватывает мой ответ.
com.apple.sharepoint.group.2
и access_bpf
, но не групп, перечисленных в /etc/group
. Мне кажется, что старые терминальные процессы (и кто знает что еще) потеряли доступ к opendirectoryd, а не сам opendirectoryd вышел из строя.Это происходит со мной случайным образом, когда я выхожу из режима ожидания (т.е. открываю свой ноутбук). Выход из системы или перезагрузка - единственный способ исправить это. Я не знаю точно, что вызывает это. Пока я печатаю, это происходит прямо сейчас. Как спрашивал комментарий в исходном посте, я побежал, id -p
и он разбился. (Отчет о сбое: http://pastebin.com/nmFFQELq )
Консольные команды:
whoami
— возвращает 501
id -p
— вылетает
cat /etc/passwd
— моего пользователя нет в документе.
Любая попытка ssh завершается ошибкой:
Ты не существуешь, уходи!
Я также проверил консоль, после пробуждения появляется куча случайных ошибок «Socket notconnected» (что, я думаю, может быть нормальным, поскольку беспроводное соединение не подключается сразу) от таких программ, как Dropbox. Однако появляется интересная ошибка:
12.04.12 8:37:09.045 PM coreservicesd: _scserver_ServerCheckin: ошибка проверки uid клиента; getpwuid(501) == NULL
12.04.12 8:37:09.400 PM coreservicesd: _scserver_ServerCheckin: ошибка проверки uid клиента; getpwuid(501) == NULL
Все еще не уверен, что вызывает это, но решил поделиться этой диагностикой.
У меня MacBook Pro середины 2009 года с установленной версией 10.7.3.
Посмотрите, настроены ли права доступа к файлу /etc/passwd
следующим образом:
-rwxr--r--
потому что он читает имя пользователя из passwd
файла.
Сегодня у меня была такая же непонятная проблема (Lion 10.7.5), и dscacheutil -flushcache
я исправил ее для себя, как было предложено в комментарии в каком-то блоге .
Я решил проблему, используя iterm=>preferences=>URL_handler и подключив whoami к моему имени пользователя.. после перезапуска iterm проблема исчезла
Убедитесь, что права доступа к файлу /etc/passwd равны 644.
chmod 644 /etc/passwd
После изменения разрешений выйдите из системы и войдите снова
Моя проблема заключается в разрешении в архиве passwd, старое разрешение -rw------- 1 root root 1280 9 июня 15:41 passwd Я использовал команду «chmod a+r /etc/passwd», и теперь все пользователи можете прочитать этот архив. -rw-r--r-- 1 root root 1280 9 июня 15:41 passwd Выйдите из системы и попробуйте. знак равно
У меня была эта странная проблема в моей Ubuntu, когда я создал нового пользователя
Я просмотрел файл /etc/passwd
`cat /etc/passwd`
Я видел, что в моей записи были следующие детали -
`ajit:x:1002:1002::/home/ajitp:/bin/sh`
Я изменил его следующим образом -
`ajit:x:1002:1002::/home/ajitp:/bin/bash`
Перейдите в домашнюю папку в Терминале и запустите . ~/.bashrc
.
Оно работает!!
ipd
Крис Пейдж
ipd
whoami
также сообщает мой номер, а не мое имя.Каджунлук
hostname
иid -p
возвращать?ipd
Дэниел Лайонс
мспасов
Лео Леопольд Герц 준영
рбанффи