Как мне найти свой идентификатор пользователя и группу в Mac OS X?

59

Попытка запустить этот компанд в терминале:

sudo chown -R yourid:yourgroup local

Тем не менее, я понятия не имею, каков мой ID и моя группа, или где их найти. Есть идеи?

помешанный
источник

Ответы:

61

В OS X ваша основная группа всегда, staffесли вы или ваш менеджер пользовательских каталогов не изменили ее.

Какая основная группа ? Основная группа пользователя по умолчанию является владельцем всех файлов, созданных этим пользователем.


Для целей chmodна вашем компьютере вы можете использовать либо числовой идентификатор пользователя (например, 501), либо имя вашей учетной записи (например danielbeck). Последнее отличается от имени пользователя, которое вы обычно видите в пользовательском интерфейсе (например, Даниэль Бек ).

Вы можете определить имя своей учетной записи, используя любое из следующих:

  • Это имя вашего домашнего каталога (если вы не настроили его) в заголовке или боковой панели Finder

  • Запуск whoamiв терминале - так chown -R $(whoami):staffдолжно быть достаточно. Вы также можете получить свою основную группу с groups $(whoami) | cut -d' ' -f1.

  • Откройте « Системные настройки» »« Пользователи и группы » , при необходимости разблокируйте панель, щелкните правой кнопкой мыши свое имя пользователя (запись единственного списка в разделе« Текущий пользователь ») и выберите« Дополнительные параметры… » . Это поле Account Name во вновь открытом диалоговом окне. Этот диалог также показывает вашу основную группу.

  • Запустите idв терминале для более подробного вывода. Это будет включать ваш числовой идентификатор пользователя. В нем также будут перечислены все группы, членами которых вы являетесь, а не только ваша основная группа. Первая группа является основной.

Даниэль Бек
источник
3
Вместо использования whoamiвы можете использовать idoneliner, совместимый с оболочками posix и csh. chown -R `id -u`:`id -g` FOLDER
fd0
Если вы используете аутентификацию LDAP, ваше имя пользователя не обязательно будет staff. Во всяком случае, не на моей работе Mac OS X.
Шридхар Сарнобат
1
@ Шридхар-Сарнобат Я обращаюсь к этому во второй половине первого предложения моего ответа.
Даниэль Бек
42

Используйте idкоманду из терминала. Он покажет ваш uid и группы, к которым вы принадлежите. Например, вот мой вывод, показывающий мой идентификатор пользователя (534), идентификатор группы (20) и группы, к которым я принадлежу (также 20).

uid=534(galuga) gid=20(staff) groups=20(staff)
galuga
источник
15

Это покажет ваш идентификатор пользователя.

$ id -u
502

Это покажет названия вашей группы. Имена групп заключены в круглые скобки.

$ id
uid=502(whoami) gid=20(staff) groups=20(staff),702(com.apple.sharepoint.group.2),12(everyone),61(localaccounts),79(_appserverusr),80(admin),81(_appserveradm),98(_lpadmin),33(_appstore),100(_lpoperator),204(_developer),395(com.apple.access_ftp),398(com.apple.access_screensharing),399(com.apple.access_ssh)
Габриэль Ву
источник
4

в Терминал, иди ~/Documentsи беги ls -la. Ваше имя пользователя и группа будут перечислены рядом с каждым из файлов / каталогов.

Это должно выглядеть так:

drwxr-xr-x  2 username usergroup  4096 Oct 17  2012 Templates
Miah
источник
супер просто и понятно, спасибо за отзыв.
терадил
3

Только прокомментировал бы, если бы мог. Мне не хватает кармы на этом сайте.

Я понятия не имею, почему кто-то отказался от @callaginn, поскольку он выдвигает правильную точку зрения.

Допустимы следующие методы (и, вероятно, лучшие варианты для сценариев оболочки):

id -u  # returns UID

id -un # returns username

id -g  # returns primary (a.k.a. effictive) GID

id -gn # returns primary Group Name

Смотрите man idбольше вариантов.

Чтобы ответить на этот конкретный вопрос, если бы я писал сценарий, который работал бы в любой среде, я бы не предполагал, что используется группа по умолчанию, staffи вместо этого я сделал бы следующее, если бы писал сценарий, который мог бы быть запущен для любого пользователя. (изменили ли они свою систему или нет):

chown "$(id -un):$(id -gn)" some_file

Всегда лучше быть независимым от платформы, если это возможно (если это не слишком много времени), так как позже у вас будет меньше технических долгов.

Пожалуйста , обратите внимание , что chown«S -Rфлаг должен быть использован с максимальной уверенностью. Вы можете действительно испортить свою систему (хотя стоит отметить, что Apple сделала это трудно, так как они внедрили System Integrity Protection).

Например, подумайте, если бы вы были chown -R 755 /varне пользователем chown -R 755 /var/wwwroot, а System Integrity Protectionотключенным пользователем, я думаю, что вас это заинтересует. Я не могу сказать вам, что сломалось бы первым, но это сломалось бы сначала в системе Дарвина, но, пожалуйста, поверьте мне на слово, что это не будет красиво.

Надеюсь, кто-то найдет это полезным.

Роберт Дж
источник
2

Еще более короткий метод поиска основной группы:

id -gn
callaginn
источник