Установите мастер-пароль с терминала

Я пытаюсь установить мастер-пароль с терминала (используя сценарий оболочки). Я вижу функцию passwd и функцию master.passwd, однако я не вижу никакой документации ни по одному из них для установки мастер-пароля (насколько мне известно, они устанавливают только пароли пользователей).

Я беру информацию из этих источников:

http://support.apple.com/kb/ph7032 Что делает эта команда: sudo dscl . passwd /Users/administratorПароль https://developer.apple.com/library/mac/documentation/darwin/reference/manpages/man5/master.passwd.5.html

Мой вопрос:

Можно ли использовать команды passwd или master.passwd для установки мастер-пароля? Если да, не могли бы вы привести пример того, как это сделать?

Ответы (3)

Во-первых, несколько замечаний:

На Mac файлы /etc/passwdи /etc/master.passwdконсультируются только тогда, когда Mac загружается в однопользовательский режим.

Я не уверен, что вы подразумеваете под «установить мастер-пароль» для Mac. Вы имеете в виду установить пароль для учетной записи «root»?

Обычно вы используете passwdкоманду для смены паролей из командной строки (команды нет master.passwd), но вы не можете использовать ее из скрипта, так как она требует ввода.

Чтобы изменить пароль в скрипте, вам нужно использовать dsclкоманду.

Вот пример:

dscl . -passwd /Users/tonyw newpass

Обратите внимание, что описанное выше должно быть запущено от имени пользователя root, а это означает, что ваш скрипт должен быть запущен от имени пользователя root. В противном случае вам нужно добавить аутентификацию в команду dscl следующим образом:

dscl . -u Admin -P adminpassword -passwd /Users/tonyw newpass

Пользователь Adminдолжен иметь права администратора для Mac.

(Все это невероятно небезопасно, поскольку у вас есть пароли в виде простого текста в скрипте.)

Конечно, чтобы установить пароль для «root», просто измените tonywна rootвыше.

Внимательно посмотрите dscl(1), чтобы понять варианты, описанные выше.

Хорошо написано и развеяло некоторые мои заблуждения. У меня уже есть несколько методов, чтобы запутать пароль из сценария оболочки (я буду передавать его в качестве аргумента, поэтому он никогда не будет открытым текстом). Я последую вашему совету, просмотрю сценарий dscl и отчитаюсь. с моими выводами :)
Хорошо, теперь у меня было время, чтобы провести дополнительное исследование и должным образом проанализировать ваш вопрос: «Я не уверен, что вы подразумеваете под «установить мастер-пароль» для Mac. Вы имеете в виду установить пароль для учетной записи? корень'?" Мастер-пароль установлен для filevault. Он добавляет еще один уровень защиты, если вам удастся забыть один пароль (тогда есть администратор, который может восстановить ваши файлы). Это то, о чем я говорю, и я не думаю, что смогу использовать команду dscl для этого.
Натан, ты заметил, что они называют это "ключом восстановления", а не мастер-паролем во всех своих документах.
dscl . -passwd /Users/tonyw newpass- Отлично работает на OS X 10.9.5.

Хорошо, для FileVault вам нужно использовать fdesetupкоманду. Настройте тестовый Mac, внимательно изучите справочную страницу и попробуйте все. Судя по справочной странице, вы можете изменить пароль восстановления FileVault с помощью этой changerecoveryопции.

Извините, но я не готов проводить тестирование, чтобы дать вам точные команды, так как неправильное выполнение может серьезно испортить мой Mac. На справочной странице есть куча примеров.

Кстати, я нашел это, зайдя apropos FileVaultв командную строку. Всегда хороший первый шаг.

После разговора с руководителем проекта кажется, что он ошибся в том, что такое мастер-пароль. Поскольку мы не будем использовать файловое хранилище (а это единственное применение), мы решили не беспокоиться об этом. Ваш ответ кажется правильным ... но, поскольку я его не проверяю, я не знаю, должен ли я пометить его как ответ или просто оставить так.

Перезагрузите Mac и удерживайте Command+ s, дайте ему загрузиться, а затем введите:

/sbin/fsck -y
/sbin/mount -UAW

Это вызовет каталог пользователя, затем введите:

ls /Users/

Примечание. Предположим, что имя учетной записи равно xyz, введите:

passwd xyz

Обратите внимание, что командная строка должна быть пустой. Введите новый пароль и нажмите Enter. Обратите внимание, что командная строка должна снова быть пустой.

Повторно введите новый пароль и нажмите Enter. Наконец введите:

reboot