Я пытаюсь вручную установить демон (Oracle Grid Engine) на свою машину и хочу, чтобы он работал под изолированной учетной записью. Каков предпочтительный способ, используя службы каталогов, добавить «системную» учетную запись на локальный компьютер в OS X? Многие из них существуют в / etc / passwd ( _www
, _dovecot
и т. Д.), Но комментарии в верхней части этого файла говорят, что он не используется, кроме как в однопользовательском режиме.
Я работаю на 10.6, и не требую никакого специального сетевого управления учетными записями. Я надеюсь на что-то простое - эквивалент useradd
почти на всех других Unix-подобных ОС.
mac-osx
user-management
directory-services
Тим Йейтс
источник
источник
Я попробовал скрипт из номинала и обнаружил несколько проблем. Поэтому я изменил его для одного конкретного идентификатора пользователя и для OS X Mavericks (10.9).
Я обнаружил, что есть несколько посторонних записей, добавленных в учетную запись пользователя в Mavericks - PasswordPolicyOptions и запись AuthenticationAuthority - которые необходимо было удалить, чтобы правильно имитировать учетные записи пользователей других встроенных служб (например, _www).
Я также добавил записи Password и RealName в учетную запись группы.
Я создал нестандартный сценарий только для учетной записи службы WSGI. Вот обновленный скрипт.
Обратите внимание, что после запуска этого скрипта файлы / etc / passwd и / etc / groups не обновляются. Я считаю, что они обновляются при перезагрузке.
источник
РЕДАКТИРОВАТЬ: Обновлено 9 января 2014 года для OS X Mavericks (предложения от Дейва, спасибо!)
Я написал скрипт bash для этого. Он будет использовать первый неиспользуемый uid, который меньше или равен 500 (uid учетной записи демона в Mac OS X), который также имеет идентичный неиспользуемый gid.
Сохраните скрипт в файл с именем
add_system_user.sh
и установите его исполняемым с помощьюchmod 755 add_system_user.sh
.Тогда предположим, что вы хотите добавить пользователя демона / системы с именем par . Вы бы запустили этот скрипт так:
sudo add_system_user.sh par
И вы получите системного пользователя с именем
_par
aliasedpar
(имя, которое вы запрашивали), и у которого совпадают uid и gid (например, 499 или что-то еще).Вот сценарий:
источник
Вот статья, которая объясняет, как использовать dscl для создания учетной записи пользователя.
статья osxdaily.com
источник
dscl /Local/Default -read /Users/_sshd
(dscl /Local/Default -ls /Users
вы получите список локальных учетных записей). Обратите внимание, что вам не нужно устанавливать все атрибуты; GeneratedUID генерируется случайным образом, а RecordType - это автоматические метаданные. Кроме того, большинство системных учетных записей OS X имеют имя основной учетной записи, которое начинается с подчеркивания, и псевдоним без него для обратной совместимости; Я рекомендую использовать соглашение о подчеркивании, но не беспокойтесь простым псевдонимом, если вам не нужно.Вот версия скрипта Дейва, которая также проверяет, существует ли пользователь / группа перед его созданием:
и скрипт для удаления пользователя:
источник