Редагування системних налаштувань через термінал


11

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

У розділі "Параметри входу" в розділі Користувачі та групи я хотів би мати можливість змінити вікно "Вхід для входу" зі списку користувачів на "ім'я та пароль".
У Date & Time я хотів би знати, як я змінюю час на сервері, який ми використовуємо. Увімкніть поля в налаштуваннях спільного доступу до енергозбереження

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

Дякую.


1
Чи вдалося вам налаштувати параметри входу?

Відповіді:


20

По-перше, ви можете ознайомитись із веб-сайтом, у якому перераховано багато таких речей: http://secrets.blacktree.com/

Я, проте, просто прийняв жорстоке рішення:

Скопіюйте папку Налаштування

$ cp -r /Library/Preferences before

Запустіть системні налаштування. Внесіть зміни через GUI. Можливо, найкраще робити одну зміну за раз, наприклад, я змінив "Відображення вікна входу як:" зі "Список користувачів" на "Ім'я та пароль". Вийдіть із системних налаштувань.

Скопіюйте папку Налаштування ще раз:

$ 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).


у 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.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.