У меня три цели:
- Реализовать исправление "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
Мои вопросы:
- Это самый эффективный способ сделать это?
- Это правильный способ создания исправления для чтения и записи общего ресурса NFS?
Если у кого-то есть вклад, это будет с благодарностью. Я не нашел надежного источника, у которого была бы вся эта информация за один раз, чтобы создать группу с пользовательским GID, добавить пользователя и исправить фальшивую группу.