Vielen geübteren Computer-Anwendern dürfte das Szenario bekannt sein: man hat irgendwo in der Verwandt- oder Bekanntschaft jemanden, der sich selbst mit einem Mac etwas schwer tut, das Gerät eigenhändig in Schuss zu halten. Und man wird Einrichter, Pate und Teilzeit-Admin für dieses entfernt stehende Gerät.
Vermutlich wird man die Verwandt- oder Bekanntschaft mit einem Account ohne Admin-Rechte arbeiten lassen. Dabei stellt sich das Problem: Wie kommen die wichtigen und teilweise sicherheitsrelevanten System-Updates zeitnah auf das Gerät? Für das Starten der
Softwareaktualisierung ist eine Authentifizierung als Admin notwendig. Startet ein Nicht-Admin die
Softwareaktualisierung, erhält er folgende Aufforderung:
Und möglicherweise traut sich hier die Verwandt- oder Bekanntschaft nicht, diese einzugeben. Oder je nach Grad des Computer-Illetrismus haben wir es vielleicht gar vorgezogen, die Zugangsdaten zum Admin-Account im Dunkeln zu lassen. Für das Einspielen von Updates ist so immer unser Erscheinen notwendig. Was guter Anlass zur Kontaktpflege sein kann, kann mitunter auch mühsam werden. Die Möglichkeit für Nicht-Admins, System-Updates einzuspielen, wäre hilfreich. Und genau das ist mit Lion (Mac OS 10.7) möglich. Dazu braucht es allerdings ein paar Handgriffe unter die Motorhaube. Und so geht's:
Viele Regeln, welche Funktionen und Teile des Betriebssystems welche Rechte und Privilegien erfordern, sind in der Datei
/etc/authorization definiert. In Lion sind da neue Regeln für die
Softwareaktualisierung dazu gekommen. Wir können uns diese im
Terminal z.B. mit dem
security Kommando anschauen:
Hymir:~ pharlab$ security authorizationdb read com.apple.SoftwareUpdate.scan
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>class</key>
<string>rule</string>
<key>comment</key>
<string>Checked when user is updating software.</string>
...
<key>rule</key>
<string>root-or-entitled-admin-or-authenticate-admin</string>
</dict>
</plist>
YES (0)
Das hier abgefragte Recht definiert, wer einen Scan nach vorhandenen Updates auslösen darf. Bevor wir dieses Recht nun modifizieren, sollten wir eine Sicherheitskopie von
/etc/authorization anlegen:
sudo cp /etc/authorization /etc/authorization.saved
Zum Modifizieren des Rechts können wir uns auch des
security Kommandos bedienen:
sudo security authorizationdb write com.apple.SoftwareUpdate.scan allow
Unser Recht sieht jetzt so aus:
Hymir:~ pharlab$ security authorizationdb read com.apple.SoftwareUpdate.scan
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>rule</key>
<string>allow</string>
</dict>
</plist>
YES (0)
Allerdings erhält unser Nicht-Admin nun nach wie vor eine Autorisierungs-Aufforderung, einfach mit geändertem Wortlaut:
Neben dem Recht, einen Scan nach neuer Software durchzuführen, wird noch ein zweites Recht benötigt: jenes, die gefundene Software auch zu installieren:
Hymir:~ pharlab$ security authorizationdb read system.install.apple-software
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>class</key>
<string>rule</string>
<key>comment</key>
<string>Checked when user is installing Apple-provided software.</string>
...
<key>rule</key>
<string>root-or-entitled-admin-or-authenticate-admin</string>
</dict>
</plist>
YES (0)
Auch jenes können wir mit dem
security Kommando erteilen:
sudo security authorizationdb write system.install.apple-software allow
Startet unser Nicht-Admin nun die Softwareaktualisierung, sollte diese ohne Autorisierungs-Dialog starten: