Правильный идентификатор группы (gid) для Lion?

9

Если вы создаете совершенно новую учетную запись администратора в Lion, вашими идентификаторами и членством в группах будут (из $ id [new Lion account] | perl -lne 's/ /\n/g; s/,/\n\t/g; print;'):

uid=504(lt)
gid=20(staff)
groups=20(staff)
    402(com.apple.sharepoint.group.1)
    12(everyone)
    33(_appstore)
    61(localaccounts)
    79(_appserverusr)
    80(admin)
    81(_appserveradm)
    98(_lpadmin)
    100(_lpoperator)
    204(_developer)
    403(com.apple.sharepoint.group.2)
    401(com.apple.access_screensharing)

Напротив, более старая учетная запись OS X будет иметь эти uid, gid и т.д .:

uid=501(andrew)
gid=501(andrew)
groups=501(andrew)
    403(com.apple.sharepoint.group.2)
    204(_developer)
    100(_lpoperator)
    98(_lpadmin)
    81(_appserveradm)
    80(admin)
    79(_appserverusr)
    61(localaccounts)
    12(everyone)
    401(com.apple.access_screensharing)
    402(com.apple.sharepoint.group.1)

Обратите внимание, что gid=20(staff)на новой учетной записи и пользователь является членом 20(staff).

При обновлении более старой учетной записи до Lion старые имена пользователей и групп сохраняются.

Были проблемы с отсутствием staffчленства в группах на модернизированных учетных записях:

  1. Невозможность установить или обновить Homebrew;
  2. Отображение «Выборка» при нажатии Cmd+ Iна файлы в вашей папке пользователя
  3. ACL и проблемы с разрешениями .

Текущий обходной путь выглядит следующим образом:

  1. Добавьте пользователя в штат (например: $ sudo dscl. Append / Groups / staff GroupMembership `whoami` или эквивалентный)
  2. Используйте Lion Recovery для восстановления разрешений по умолчанию для домашней папки (нажмите на вкладку «Нет диска - Lion»).

До сих пор это исправило многие проблемы, которые у меня были с обновлением, и у меня, кажется, более длительное время автономной работы и более низкая загрузка процессора.

Тем не менее, вот вопросы, которые у меня есть:

1. Должен ли я пройти через проблемы смены gid=501на gid=20на моем счете или просто быть членом группы сотрудников достаточно хорошо?

2. Является ли членство в 20 (персонал) таким же, как иметь Gid = 20 (персонал)?

3. Если я изменил gid=часть своего аккаунта, как мне это сделать на Lion? Я знаю только, как это сделать на Ubuntu ...

drewk
источник

Ответы:

4

Я не видел никакой разницы в том, как OS X рассматривает основную группу по сравнению с другими группами пользователя, поэтому я не думаю, что это имеет какое-то реальное значение. Я был бы склонен "исправить" это для опрятности, все же. Эти команды должны установить первичную группу равной 20, а затем добавить «вторичное» членство в старую группу andrew:

sudo dscl . create /Users/andrew PrimaryGroupID 20
sudo dseditgroup -o edit -a andrew -t user andrew

(Примечание: использование dscl для добавления членства в вторичной группе не совсем правильно - используйте вместо этого dseditgroup.)

Гордон Дэвиссон
источник
Потрясающе !!! Это решило проблему. Вам нужно перезагрузить компьютер (или выйти / войти в свою учетную запись), или idпокажет это, egid=501пока вы этого не сделаете. Спасибо!!!
выпил
Если вы похожи на меня, то вам это понадобится sudo dscl . delete /users/andrew.
orome
@raxacoricofallapatorius: это удаляет всю пользовательскую запись - вы, вероятно, не хотите этого делать.
Гордон Дэвиссон
@GordonDavisson: Если вы забыли сначала заменить имя пользователя andrew(как я!) - это именно то, что вы хотите.
13
1

Боюсь, на этот вопрос нет простого ответа:

  • при доступе к файлам не имеет значения, является ли ваш гид staffили вы просто являетесь членом этой группы
  • при создании файлов это может иметь значение, потому что новые файлы принадлежат вам, но получают группу из каталога, в котором они созданы. Но поскольку файл принадлежит вам, в этом случае вы должны иметь к нему доступ в любом случае.

Для большинства практических целей, вероятно, достаточно принадлежности к группе (тем более что ваши проблемы, похоже, решены в настоящее время).

Nohillside
источник
1
Спасибо. Как бы я использовал, dsclчтобы изменить GID?
выпил
2
Это верно для некоторых юниксов, но не для OS X; в OS X файлы наследуют свое групповое назначение из родительской папки, не основываясь на основной группе пользователя.
Гордон Дэвиссон