1

У меня три цели:

  • Реализовать исправление "FakeGroup"
  • Добавить группу с определенным GID (т.е. пользовательскую группу с GID 1111)
  • Добавить пользователя в эту группу

Реализовать исправление "FakeGroup"

Согласно этому документу, акции NFS на Mac OSX Lion игнорируют определенные членства в группах. Смотрите код ниже:

dscl . -create /Groups/FakeGroup GeneratedUID FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF
dscl . -create /Groups/FakeGroup PrimaryGroupID 345678
dscl . -create /Groups/FakeGroup RealName "Fake Group"
uguid=$(dscl . -read /Groups/MyUSERNAME GeneratedUID | awk '{print $2}')
dscl . -create /Groups/FakeGroup NestedGroups $uguid

Я получаю эту ошибку:

<dscl_cmd> DS Error: -14136 (eDSRecordNotFound)

Не уверен, что GeneratedUID должен быть, но если я просто наберу "id", это мой uid = MYUID(myUserName)?

Так что это не сработает:

dscl . -create /Groups/FakeGroup GroupMembership UserName 

Я не совсем уверен, но мне сказали, что это исправление необходимо для правильной работы общих ресурсов NFS.

Добавить группу с определенным GID (т.е. пользовательскую группу с GID 1111)

Я написал короткий скрипт, чтобы взять groupName и groupGID - он создал группу с указанным GID. Затем он спрашивает, какого пользователя вы хотите добавить в эту группу.

echo "What group name would you like to create [ENTER]"
read groupName

echo "What GID would you like to assign to $groupName?"
read groupGID

dscl . -create /Groups/$groupName
dscl . -create /Groups/$groupName name $groupName
dscl . -create /Groups/$groupName passwd "*"
dscl . -create /Groups/$groupName gid $groupGID

echo "Which user would you like to add to your newly created group?"
read userName

dscl . -create /Groups/$groupName GroupMembership $userName

Этот скрипт отлично работает для того, для чего он был написан. Он добавляет указанного пользователя во вновь созданную группу с указанным GID в этой группе. Вы можете проверить с помощью:

dscl . readall /Groups

Мои вопросы:

  1. Это самый эффективный способ сделать это?
  2. Это правильный способ создания исправления для чтения и записи общего ресурса NFS?

Если у кого-то есть вклад, это будет с благодарностью. Я не нашел надежного источника, у которого была бы вся эта информация за один раз, чтобы создать группу с пользовательским GID, добавить пользователя и исправить фальшивую группу.

1 ответ1

0

Если вы внимательно прочитали документ, на который вы ссылались, вы заметите следующее:

Note, in the above command we are using the group called 'user' for a group that all users are a member of

так что вы, вероятно, не имеете в виду существующую группу здесь:

uguid=$(dscl . -read /Groups/MyUSERNAME GeneratedUID | awk '{print $2}')

Взгляните на любую существующую группу, используя

dscl . read /Groups/everyone

И обратите внимание на значение для GeneratedUID. Это не просто число, такое как GID (PrimaryGroupID), но GUID/UUID.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .