Исправление двух групп пользователей с одинаковым идентификатором

Внезапно мой домашний каталог оказывается в группе messagebusвместо обычного staff.
(Я виню в этом texlive, но у меня нет доказательств.)

Проблема в том, что обе группы имеют одинаковый идентификатор:

$ dscl . -read /Groups/staff
AppleMetaNodeLocation: /Local/Default
GeneratedUID: ABCDEFAB-CDEF-ABCD-EFAB-CDEF00000014
GroupMembers: FFFFEEEE-DDDD-CCCC-BBBB-AAAA00000000
GroupMembership: root
Password: *
PrimaryGroupID: 20
RealName: Staff
RecordName: staff BUILTIN\Users
RecordType: dsRecTypeStandard:Groups
SMBSID: S-1-5-32-545

$ dscl . -read /Groups/messagebus
AppleMetaNodeLocation: /Local/Default
GeneratedUID: CF898A47-EA83-4E18-AE17-C05E56FBC550
Password: *
PrimaryGroupID: 20
RealName: messagebus
RecordName: messagebus
RecordType: dsRecTypeStandard:Groups

Как безопасно избавиться от messagebusгруппы (или присвоить ей другой идентификатор)?
«Безопасный» здесь означает, конечно, что я не причиняю вреда своей staffгруппе.

Я только что столкнулся с той же проблемой. Что такое texlive? Я не уверен, что он у меня есть. Я использую OS X Mavericks.
texlive — это набор программ для редактирования документов TeX/LaTeX. Если вы не уверены, то, вероятно, у вас его нет. И, возможно, тогда я обвинил не ту программу :-)
В этом случае я подозреваю, что проблема вызвана недавним (автоматическим) обновлением OS X? Возможно, клиент удаленного рабочего стола 3.7.1 ( support.apple.com/kb/HT6045 ), так как это последнее обновление, примененное к моей машине до того, как я заметил проблему.
Возможно, но тогда я ожидаю, что проблема возникнет у большего числа людей. Кажется довольно редко.
Это случилось со мной. Я думаю, что большинство пользователей просто не следят за своими файловыми группами.

Ответы (1)

Используйте команду find (и сохраните выходной список. Это может занять некоторое время)

найти / -group messagebus -print

чтобы гарантировать, что права собственности на файлы могут быть исправлены позже с помощью команды chgrp .

Следующее может быть использовано

дскл . -change /Groups/messagebus PrimaryGroupID 20 10000

Как найти отличия между staff и messafebus, разве он не использует gid для поиска группы?
Каталог, в котором находится файл, показанный find, должен помочь определить, какой должна быть его группа. Например, если в /Users/xxx есть файл, он должен принадлежать персоналу , но если он находится в /Applications, то он может оставаться messagebus . Резервная копия Time Capsule также может помочь, если она доступна.
но данные, хранящиеся в файле, имеют значение gid, т.е. 20 в обоих случаях (или HFS делает что-то отличное от других файловых систем Unix)
Спасибо, dcslкоманда именно то, что я искал. После перезапуска группы отображаются правильно как staff. @Mark был прав; действительно findотображались все файлы с gid 20, так что это были в основном все мои домашние файлы. Никак не отличить их от файлов, которые на самом деле должны были быть в группе messagebus.