Редактирование системных настроек через терминал

11

Я пытаюсь редактировать настройки системы через командную строку, но не могу найти правильные имена переменных.

В разделе «Параметры входа в систему» ​​в разделе «Пользователи и группы» я хотел бы изменить окно «Отображение входа в систему» ​​из списка пользователей на «имя и пароль».
В «Дата и время» я хотел бы узнать, как я меняю время на используемый нами сервер. Включить поля в настройках общего доступа Настройки энергосбережения

Было бы замечательно, если бы кто-то мог помочь мне или указать мне правильное направление, поскольку я знаю, что вы редактируете списки предпочтений, но знаете, что добавить, или найдите предпочтительные соглашения об именах.

Благодарю.

Sinergi
источник
1
Вам удалось настроить параметры входа?

Ответы:

20

Во-первых, вы можете проверить веб-сайт, на котором перечислено много таких вещей: http://secrets.blacktree.com/

Я, однако, просто принял решение грубой силы:

Скопируйте папку «Настройки»

$ cp -r /Library/Preferences before

Запустите Системные настройки. Внести изменения через графический интерфейс. Вероятно, лучше всего вносить одно изменение за раз, например, я изменил «Отображать окно входа в систему как:» с «Список пользователей» на «Имя и пароль». Выйти из системных настроек.

Скопируйте папку «Настройки» еще раз:

$ cp -r /Library/Preferences after

Посмотрите, какие файлы изменились:

$ diff -ur before after
Binary files before/Preferences/com.apple.loginwindow.plist and after/Preferences/com.apple.loginwindow.plist differ

Сравните две версии. Поскольку они представляют собой двоичные файлы, вам необходимо преобразовать их в XML для сравнения. Я использую псевдоним для этого:

$ alias plist='plutil -convert xml1 -o /dev/stdout'
$ diff -u <(plist before/Preferences/com.apple.loginwindow.plist) <(plist after/Preferences/com.apple.loginwindow.plist)
--- /dev/fd/63  2013-01-23 18:20:29.000000000 +0200
+++ /dev/fd/62  2013-01-23 18:20:29.000000000 +0200
@@ -9,7 +9,7 @@
    <key>RetriesUntilHint</key>
    <integer>3</integer>
    <key>SHOWFULLNAME</key>
-   <false/>
+   <true/>
    <key>lastUser</key>
    <string>loggedIn</string>
    <key>lastUserName</key>

На данный момент мы нашли настройки. Подтвердите, что у нас это есть defaults:

$ defaults read /Library/Preferences/com.apple.loginwindow SHOWFULLNAME
1
$ sudo defaults write /Library/Preferences/com.apple.loginwindow SHOWFULLNAME -bool false
$ defaults read /Library/Preferences/com.apple.loginwindow SHOWFULLNAME
0

Запустите Системные настройки и подтвердите его изменение.

Но
источник
7

sudo opensnoop -n cfprefsdпоказывает, какие списки свойств доступны. Вы также можете просто сортировать файлы настроек по дате изменения: ls -t {~,}/Library/Preferences/{ByHost,}.

Для настроек в пользовательском домене вы также можете запустить defaults read > temp, изменить некоторые настройки и запустить diff temp <(defaults read).

LRI
источник
в macOS 10.12.1 opensnoopпросто печатает сообщения об ошибках; сначала dtrace: system integrity protection is on, some features will not be availableсписок сообщений вроде dtrace: error on enabled probe ID 5 (ID 167: syscall::open:return): invalid user access in action #11 at DIF offset 2; вторая часть, кажется, работает хорошо
SSC
1

Вы можете использовать AppleScript для управления многими свойствами системы. См. Https://www.macosxautomation.com/applescript/features/system-prefs.html для примеров.

В зависимости от того, что вы хотите сделать, вы можете создать скрипт для таких вещей, как

$ set-setting "dock preferences" "autohide:true, magnification:false"

Используйте Script Editor.app для запуска и отладки кода в случае изменения меток свойств в более новых версиях macOS.

отметка
источник