Editando preferências do sistema via terminal

11

Estou procurando editar as configurações de preferências do sistema por meio da linha de comando, mas não consigo encontrar os nomes corretos das variáveis.

Nas Opções de login, em Usuários e grupos, gostaria de poder alterar a janela Exibir login da lista de usuários para 'nome e senha'.
Em Data e hora, gostaria de saber como altero a hora para um servidor que usamos. Habilite campos nas configurações de Configuração da economia de energia da configuração de compartilhamento

Seria ótimo se alguém pudesse me ajudar ou me apontar na direção certa, pois sei que você edita as preferências., Mas é saber o que adicionar ou encontrar as convenções de nomenclatura preferidas.

Obrigado.

Sinergi
fonte
1
Você conseguiu configurar as opções de login?

Respostas:

20

Primeiro, você pode conferir um site que lista muitas dessas coisas: http://secrets.blacktree.com/

Eu, no entanto, apenas tomei uma solução de força bruta:

Copie a pasta Preferências

$ cp -r /Library/Preferences before

Inicie Preferências do Sistema. Faça uma alteração através da GUI. Provavelmente, é melhor fazer uma alteração de cada vez, por exemplo, alterei "Exibir janela de login como:" de "Lista de usuários" para "Nome e senha". Saia das preferências do sistema.

Copie a pasta Preferências novamente:

$ cp -r /Library/Preferences after

Veja quais arquivos foram alterados:

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

Compare as duas versões. Como são arquivos binários, você precisará convertê-los em XML para comparação. Eu uso um alias para isso:

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

Neste ponto, localizamos a configuração. Confirme se o temos com 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

Inicie as Preferências do Sistema e confirme que foi alterado.

Noach
fonte
7

sudo opensnoop -n cfprefsdmostra quais listas de propriedades estão sendo acessadas. Você também pode simplesmente classificar os arquivos de preferência por data de modificação: ls -t {~,}/Library/Preferences/{ByHost,}.

Para preferências no domínio do usuário, você também pode executar defaults read > temp, alterar algumas preferências e executar diff temp <(defaults read).

Lri
fonte
no macOS 10.12.1, opensnoopapenas imprime mensagens de erro; primeiro dtrace: system integrity protection is on, some features will not be available, depois uma lista de mensagens como dtrace: error on enabled probe ID 5 (ID 167: syscall::open:return): invalid user access in action #11 at DIF offset 2; a segunda parte parece funcionar bem
SSC
1

Você pode usar o AppleScript para controlar muitas das propriedades das Preferências do Sistema. Consulte https://www.macosxautomation.com/applescript/features/system-prefs.html para exemplos.

Dependendo do que você deseja fazer, você pode criar um script para fazer coisas como

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

Use o Script Editor.app para executar e depurar o código, caso os rótulos das propriedades tenham sido alterados nas versões mais recentes do macOS.

Marca
fonte