Я пытаюсь изменить политики паролей Sierra по умолчанию с помощью pwpolicy
, пытаясь, например, уменьшить глубину истории паролей с 24 до 1, нажав sudoer:
sudo pwpolicy setaccountpolicies "policyAttributePasswordHistoryDepth=1"
Но это не работает. Сообщение об ошибке:
Ошибка: файл политики не найден
Идентификатор политики, который я пытаюсь изменить, который отображается (и многие другие) при нажатии, выглядит pwpolicy getaccountpolicies
следующим образом:
<key>policyIdentifier</key>
<string>ProfilePayload:[HASHED_VALUE]:pinHistory</string>
<key>policyParameters</key>
<dict>
<key>policyAttributePasswordHistoryDepth</key>
<integer>24</integer>
</dict>
Как правильно это сделать?
Хорошо, вот как я наконец решил это, хотя я не уверен, что это самый правильный способ.
Как указал @patrixpwpolicy setaccountpolicies
, требуется путь к файлу XML с политиками.
pwpolicy getaccountpolicies
дает текущие глобальные политики в формате XML, поэтому я перенаправил вывод в файл с pwpolicy getaccountpolicies > file.plist
, удалив возможные информационные сообщения, которые может написать команда, и оставив только структуру XML.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>policyCategoryPasswordChange</key>
<array>
...
</array>
</dict>
</plist>
Затем я изменил значение, которое хотел изменить в моем случае, в файле, который я создал ( file.plist
):
<key>policyIdentifier</key>
<string>ProfilePayload:[HASHED_VALUE]:pinHistory</string>
<key>policyParameters</key>
<dict>
<key>policyAttributePasswordHistoryDepth</key>
<integer>2</integer>
</dict>
Наконец, я использовал этот файл для обновления политики:pwpolicy setaccountpolicies /path/to/file.plist
без холма
-setaccountpolicies
«принимает один аргумент: имя файла, содержащего политики».Дез