Mengedit Preferensi Sistem melalui Terminal

11

Sedang mencari untuk mengedit pengaturan preferensi sistem melalui baris perintah tetapi tidak dapat seumur hidup saya menemukan nama variabel yang benar.

Dalam Opsi Masuk di bawah Pengguna & Grup, saya ingin dapat mengubah jendela Tampilkan masuk dari daftar pengguna menjadi 'nama dan kata sandi'.
Dalam Tanggal & Waktu, saya ingin tahu bagaimana saya mengubah waktu ke server yang kami gunakan. Aktifkan bidang dalam pengaturan Berbagi Pengaturan Penghemat Energi

Akan lebih bagus jika seseorang dapat membantu saya atau mengarahkan saya ke arah yang benar karena saya tahu Anda mengedit preferensi. Daftar tetapi mengetahui apa yang harus ditambahkan atau menemukan konvensi penamaan yang disukai.

Terima kasih.

Sinergi
sumber
1
Apakah Anda berhasil mengonfigurasi opsi masuk?

Jawaban:

20

Pertama, Anda dapat memeriksa situs web yang mencantumkan banyak hal ini: http://secrets.blacktree.com/

Namun, saya hanya mengambil solusi brute-force:

Salin folder Preferensi

$ cp -r /Library/Preferences before

Luncurkan System Preferences. Lakukan perubahan melalui GUI. Mungkin yang terbaik untuk melakukan satu perubahan pada satu waktu, misalnya saya mengubah "Tampilan Jendela Masuk sebagai:" dari "Daftar pengguna" menjadi "Nama dan kata sandi". Keluar dari Preferensi Sistem.

Salin folder Preferensi lagi:

$ cp -r /Library/Preferences after

Lihat file mana yang berubah:

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

Bandingkan dua versi. Karena mereka adalah file biner, Anda harus mengonversinya ke XML untuk perbandingan. Saya menggunakan alias untuk ini:

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

Pada titik ini kami telah menemukan pengaturan. Konfirmasikan kami memilikinya dengan 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

Luncurkan System Preferences dan konfirmasi itu berubah.

Noach
sumber
7

sudo opensnoop -n cfprefsdmemperlihatkan daftar properti apa yang sedang diakses. Anda juga dapat hanya mengurutkan file preferensi berdasarkan tanggal modifikasi: ls -t {~,}/Library/Preferences/{ByHost,}.

Untuk preferensi di domain pengguna, Anda juga dapat menjalankan defaults read > temp, mengubah beberapa preferensi, dan menjalankan diff temp <(defaults read).

Lri
sumber
pada macOS 10.12.1, opensnoophanya mencetak pesan kesalahan; pertama dtrace: system integrity protection is on, some features will not be available, kemudian daftar pesan seperti dtrace: error on enabled probe ID 5 (ID 167: syscall::open:return): invalid user access in action #11 at DIF offset 2; bagian kedua tampaknya bekerja dengan baik
ssc
1

Anda dapat menggunakan AppleScript untuk mengontrol banyak properti System Preferences. Lihat https://www.macosxautomation.com/applescript/features/system-prefs.html untuk contoh.

Bergantung pada apa yang ingin Anda lakukan, Anda dapat membuat skrip untuk melakukan hal-hal seperti

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

Gunakan Script Editor.app untuk menjalankan dan men-debug kode jika label properti telah berubah di versi macOS yang lebih baru.

Menandai
sumber