(Here is an English version of this text)
Unprivilegierte Benutzer haben normalerweise nicht die Berechtigung, die Systemzeit des Rechners zu ändern, und genauso wenig sollten sie die Möglichkeit haben, Einstellungen an Geräten vorzunehmen, über die das indirekt geschehen könnte.
Bei der Zeitsynchronisierung von Rechnern mit Hilfe von Meinberg-PCI-Karten oder USB-Devices sind also normalerweise erweiterte Rechte (Administrator- bzw. “root”-Rechte) erforderlich, um Einstellungen vorzunehmen, die Einfluss auf die Zeitsynchronisierung des Rechners mit Hilfe dieser Uhren haben.
Ohne die erforderlichen Rechte ist es normalerweise nur möglich, den Status und die aktuellen Einstellungen anzusehen und zu überprüfen, aber die meisten Einstellungen können nicht geändert werden.
Dabei muss unterschieden werden, an welcher Stelle die erweiterten Rechte nötig sind. Um z.B. die Systemzeit zu verändern, Services zu starten oder zu beenden usw. werden echte Berechtigungen auf Betriebssystem-Ebene benötigt, z.B. Administrator-Rechte unter Windows oder “root”-Rechte unter Linux und anderen Unix-ähnlichen Betriebssystemen.
Zusätzlich gibt es eine Rechte-Überprüfung in den Treibern für die Geräte, wo entschieden wird, ob bestimmte Konfigurationseinstellungen an ein Gerät gesendet werden dürfen oder nicht. Im Normalfall wird dies ebenfalls nur erlaubt, wenn erweiterte Berechtigungen vorhanden sind.
Für einige spezielle Anwendungen, z.B. Tests oder Inbetriebnahme, kann es jedoch nützlich oder erforderlich sein, auch ohne echte Administrator-Rechte bestimmte Konfigurationseinstellungen der Geräte zu erlauben.
Wenn das Monitorprogramm mbgmon.exe
aus dem Treiberpaket für Windows ohne Admin-Rechte
gestartet wird, sind normalerweise alle Buttons und Menus ausgegraut, die Aktionen auslösen, für
die Administrator-Rechte erforderlich sind. In der Titelzeile des Fensters erscheint dann der Hinweis:
(Ohne Admin-Rechte ausgeführt)
Falls das Schreiben von Konfigurationsdaten dennoch erlaubt sein soll, muss in der Registry
einmalig ein bestimmter Wert gesetzt werden. Dazu führt man das Programm regedit
aus und
navigiert zu dem Pfad, der Informationen zum Kernelmodul mbgclock
enthält:
\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mbgclock\
Falls er noch nicht existiert, muss hierunter ein Subkey Parameters
angelegt werden, und
darin ein Registry-Eintrag vom Typ DWORD
mit dem Namen Omit Access Restrictions
und dem Wert 1
.
Alternativ kann die Datei unter dem folgenden Link in die Registry importiert werden, um den Eintrag automatisch anzulegen:
Wenn das Monitorprogramm beim Start diesen Registry-Wert findet, werden alle Buttons freigeschaltet, über die Konfigurationsdaten auf das Gerät geschrieben werden können, auch wenn keine echten Administrator-Rechte vorhanden sind.
Wenn dann das Monitorprogramm dann ohne explizite Admin-Rechte ausgeführt wird, erscheint dann in der Titelzeile des Fensters dieser Hinweis: (Ohne vollständige Admin-Rechte ausgeführt)
Achtung: Durch diesen Parameter wird lediglich der schreibende Zugriff auf das jeweilige
Gerät ermöglicht. Eine Änderung der Konfigurationsparameter für den Zeitservice bzw. das Starten
oder Stoppen des Zeitservice ist weiterhin nicht möglich, da hierzu echte Admin-Rechte
erforderlich sind.
Da ebenfalls echte Admin-Rechte erforderlich sind, um diesen Registry-Eintrag anzulegen, ist sichergestellt, dass ein unprivilegierter Benutzer diese Möglichkeit nicht ohne Zustimmung eines Administrators nutzen kann.
Auch unter Linux wird standardmäßig verhindert, dass ein unprivilegierter Benutzer Konfigurationseinstellungen eines Gerätes ändern kann, und auch hier kann es nötig oder gewünscht sein, dass im Zuge von Tests oder der Inbetriebnahme eines Gerätes diese Berechtigungsüberprüfung außer Kraft gesetzt wird.
Da das Treiberpaket für Linux immer aus dem Sourcecode compiliert wird, wurde zu diesem Zweck ein Parameter
OMIT_PRIV_CHECKING
für das make
-Programm eingeführt, mit dessen Hilfe die Berechtigungsüberprüfung
von der Compilierung ausgeschlossen wird:
cd mbgtools-lx make clean make OMIT_PRIV_CHECKING=1 make install
Wenn dieser Parameter angegeben wird, erscheint bei der Compilierung des Treiberpakets der folgende Hinweis, um den Benutzer vor den Folgen zu warnen:
IOCTL privilege checking is omitted at your own risk!
Wenn das auf diese Weise compilierte Kernelmodul geladen wird, kann auch ein nicht-privilegierter Benutzer
mit Hilfe der Tools aus dem Treiberpaket die Konfiguration der unterstützten PCI-Karten und USB-Geräte verändern,
was wiederum indirekt Auswirkungen auf die Zeitsynchronisierung des Rechners haben kann, wenn das Gerät
als Referenzzeitquelle verwendet wird.
Für die Verwendung auf einem reinen Testsystem, wo die Berechtigungsprüfung üblicherweise immer ausgeschaltet ist, kann es sinnvoll sein, den Parameter fest im Environment einzutragen, damit er bei der Compilierung einer neuen Version des Treiberpakets nicht unbeabsichtigt vergessen wird. Dazu kann die Zeile
export OMIT_PRIV_CHECKING=1
in eine der Konfigurationsdateien des Kommandozeilen-Interpreters (z.B. .profile, .bashrc, o.ä.) eingetragen werden.
Dadurch wird der Parameter immer berücksichtigt, auch wenn er nicht explizit beim Aufruf von make
angegeben wird.
Da das auf diese Weise compilierte Kernelmodul nur durch einen Benutzer mit “root”-Rechten installiert bzw. geladen werden kann, ist sichergestellt, dass ein unprivilegierter Benutzer dies nicht ohne Zustimmung eines Administrators einrichten kann.
— Martin Burnicki martin.burnicki@meinberg.de, last updated 2025-10-10