Modification des préférences système via le terminal

11

Cherche à modifier les paramètres des préférences système via la ligne de commande, mais ne peut pas pour la vie de trouver les noms corrects des variables.

Dans les options de connexion sous Utilisateurs et groupes, je voudrais pouvoir changer la fenêtre de connexion d'affichage de la liste des utilisateurs à «nom et mot de passe».
Dans Date & Time, je voudrais savoir comment je change l'heure sur un serveur que nous utilisons. Activer les champs dans les paramètres d'économie d'énergie du partage de configuration

Ce serait formidable si quelqu'un peut m'aider ou me diriger dans la bonne direction car je sais que vous modifiez les préférences .plists mais que vous savez quoi ajouter ou trouver les conventions de dénomination préférées.

Merci.

Sinergi
la source
1
Avez-vous réussi à configurer les options de connexion?

Réponses:

20

Tout d'abord, vous pouvez consulter un site Web qui répertorie un grand nombre de ces choses: http://secrets.blacktree.com/

Cependant, je viens de prendre une solution de force brute:

Copiez le dossier Préférences

$ cp -r /Library/Preferences before

Lancez les Préférences Système. Apportez une modification via l'interface graphique. Il vaut probablement mieux faire un changement à la fois, par exemple j'ai changé "Afficher la fenêtre de connexion comme:" de "Liste des utilisateurs" à "Nom et mot de passe". Quittez les préférences système.

Copiez à nouveau le dossier Préférences:

$ cp -r /Library/Preferences after

Voir quels fichiers ont changé:

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

Comparez les deux versions. Puisqu'il s'agit de fichiers binaires, vous devrez les convertir en XML pour comparaison. J'utilise un alias pour cela:

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

À ce stade, nous avons localisé le paramètre. Confirmez que nous l'avons avec 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

Lancez les Préférences Système et confirmez qu'il a changé.

Noach
la source
7

sudo opensnoop -n cfprefsdindique les listes de propriétés accessibles. Vous pouvez aussi trier les fichiers de préférence par date de modification: ls -t {~,}/Library/Preferences/{ByHost,}.

Pour les préférences dans le domaine utilisateur, vous pouvez également exécuter defaults read > temp, modifier certaines préférences et exécuter diff temp <(defaults read).

Lri
la source
sur macOS 10.12.1, opensnoopimprime simplement les messages d'erreur; d'abord dtrace: system integrity protection is on, some features will not be available, puis une liste de messages comme dtrace: error on enabled probe ID 5 (ID 167: syscall::open:return): invalid user access in action #11 at DIF offset 2; la deuxième partie semble bien fonctionner
ssc
1

Vous pouvez utiliser AppleScript pour contrôler de nombreuses propriétés des Préférences Système. Voir https://www.macosxautomation.com/applescript/features/system-prefs.html pour des exemples.

Selon ce que vous voulez faire, vous pouvez créer un script pour faire des choses comme

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

Utilisez Script Editor.app pour exécuter et déboguer le code au cas où les étiquettes de propriétés auraient changé dans les versions plus récentes de macOS.

marque
la source