JavaScript is required to for searching.
Navigationslinks �berspringen
Druckansicht beenden
Systemverwaltungshandbuch: Sicherheitsservices
search filter icon
search icon

Dokument-Informationen

Vorwort

Teil I Übersicht über die Sicherheit

1.  Sicherheitsservices (Überblick)

Teil II System-, Datei- und Gerätesicherheit

2.  Verwalten von Rechnersicherheit (Übersicht)

3.  Steuern des Zugriffs auf Systeme (Aufgaben)

4.  Steuern des Zugriffs auf Geräte (Aufgaben)

5.  Verwenden von Basic Audit Reporting Tool (Aufgaben)

6.  Steuern des Zugriffs auf Dateien (Aufgaben)

7.  Verwenden von Automated Security Enhancement Tool (Aufgaben)

Teil III Rollen, Berechtigungsprofile und Berechtigungen

8.  Verwenden von Rollen und Berechtigungen (Übersicht)

Neuerungen bei RBAC

Rollenbasierte Zugriffssteuerung (Übersicht)

RBAC: eine Alternative zum Superuser-Modell

Oracle Solaris RBAC-Elemente und Basiskonzepte

Berechtigungseskalation

RBAC-Autorisierungen

Autorisierungen und Berechtigungen

Privilegierte Anwendungen und RBAC

Anwendungen, die UIDs und GIDs prüfen

Anwendungen, die auf Berechtigungen prüfen

Anwendungen, die Autorisierungen prüfen

RBAC-Berechtigungsprofile

RBAC-Rollen

Profil-Shells und RBAC

Name Service-Bereich und RBAC

Sicherheitsüberlegungen bei direkter Zuweisung von Sicherheitsattributen

Berechtigungen (Übersicht)

Berechtigungen zum Schutz von Kernel-Prozessen

Berechtigungsbeschreibungen

Administrative Unterschiede auf einem System mit Berechtigungen

Berechtigungen und Systemressourcen

Implementieren von Berechtigungen

Zuweisen von Berechtigungen zu Prozessen

Zuweisen von Berechtigungen

Erweitern der Berechtigungen eines Benutzers oder einer Rolle

Beschränken der Berechtigungen eines Benutzers oder einer Rolle

Zuweisen von Berechtigungen zu einem Skript

Berechtigungen und Geräte

Berechtigungen und Fehlersuche

9.  Rollenbasierte Zugriffssteuerung (Aufgaben)

10.  Rollenbasierte Zugriffssteuerung (Übersicht)

11.  Berechtigungen (Aufgaben)

12.  Berechtigungen (Referenz)

Teil IV Kryptografische Services

13.  Oracle Solaris Cryptographic Framework (Übersicht)

14.  Oracle Solaris Cryptographic Framework (Aufgaben)

15.  Oracle Solaris Key Management Framework

Teil V Authentifizierungsservices und sichere Kommunikation

16.  Verwenden von Authentifizierungsservices (Aufgaben)

17.  Verwenden von PAM

18.  Verwenden von SASL

19.  Verwenden von Oracle Solaris Secure Shell (Aufgaben)

20.  Oracle Solaris Secure Shell (Referenz)

Teil VI Kerberos-Service

21.  Einführung zum Kerberos-Service

22.  Planen des Kerberos-Service

23.  Konfigurieren des Kerberos-Service (Aufgaben)

24.  Kerberos-Fehlermeldungen und -Fehlerbehebung

25.  Verwalten von Kerberos-Hauptelementen und Richtlinien (Aufgaben)

26.  Verwenden von Kerberos-Anwendungen (Aufgaben)

27.  Der Kerberos-Service (Referenz)

Teil VII Prüfung bei Oracle Solaris

28.  Prüfung bei Oracle Solaris (Übersicht)

29.  Planen der Oracle Solaris-Prüfung

30.  Verwalten der Oracle Solaris-Prüfung (Aufgaben)

31.  Prüfung bei Oracle Solaris (Referenz)

Glossar

Index

Berechtigungen (Übersicht)

Bei der Prozessberechtigungsverwaltung können Prozesse auf Befehls-, Benutzer-, Rollen- oder Systemebene beschränkt werden. Oracle Solaris implementiert Prozessberechtigungsverwaltung über Berechtigungen. Berechtigungen reduzieren das Sicherheitsrisiko, das entsteht, wenn ein Benutzer oder ein Prozess auf einem System vollständige Superuser-Berechtigungen hat. Berechtigungen und RBAC stellen ein leistungsstarkes Alternativmodell zum traditionellen Superuser-Modell dar.

Berechtigungen zum Schutz von Kernel-Prozessen

Eine Berechtigung ist ein einzelnes Recht, das ein Prozess zum Durchführen eines Vorgangs benötigt. Die Berechtigung wird im Kernel durchgesetzt. Ein Programm, das innerhalb der Grenzen des Oracle Solaris-Berechtigungs-Basissatzes arbeitet, arbeitet innerhalb der Grenzen der Systemsicherheitsrichtlinie. setuid-Programme sind Beispiele für Programme, die außerhalb der Grenzen der Systemsicherheitsrichtlinie arbeiten. Durch die Verwendung von Berechtigungen müssen Programme setuid nicht mehr aufrufen.

Berechtigungen führen die Arten der auf einem System ausführbaren Vorgänge einzeln auf. Programme können mit genau den Berechtigungen ausgeführt werden, die die erfolgreiche Ausführung des Programms ermöglichen. Ein Programm, das das Datum festlegt und es in eine administrative Datei schreibt, erfordert z. B. möglicherweise die Berechtigungen file_dac_write und sys_time. Durch diese Berechtigungen entfällt die Notwendigkeit, ein anderes Programm als root auszuführen.

Historisch gesehen folgen Systeme nicht dem Berechtigungsmodell. Sie verwendeten eher das Superuser-Modell. Im Superuser-Modell werden Prozesse als root oder als Benutzer ausgeführt. Benutzerprozesse wurden auf die Ausführung im Verzeichnis und den Dateien des Benutzers beschränkt. root-Prozesse konnten Verzeichnisse und Dateien an einem beliebigen Ort im System erstellen. Ein Prozess, der die Erstellung eines Verzeichnisses außerhalb des Benutzerverzeichnisses erforderte, wurde mit einer UID=0 ausgeführt, d. h. als root. Die Sicherheitsrichtlinie stützte sich auf wahlfreie Zugangskontrollen (Discretionary Access Controls, DAC), um Systemdateien zu schützen. Geräteknoten wurden von DAC geschützt. Geräte, die der Gruppe sys angehörten, konnten z. B. nur von Mitgliedern der Gruppe sys geöffnet werden.

setuid-Programme, Dateiberechtigungen und administrative Konten sind jedoch anfällig für Missbrauch. Die Anzahl der Aktionen, die ein setuid-Prozess ausführen darf, ist höher als zur Ausführung des Vorgangs durch den Prozess erforderlich. Ein setuid-Programm kann von einem Eindringling ausgeführt werden, der dann als allmächtiger root-Benutzer arbeitet. Auf ähnliche Weise kann ein Benutzer mit Zugriff auf das root-Passwort das gesamte System beeinträchtigen.

Im Gegensatz dazu ermöglicht ein System, das Richtlinien mit Berechtigungen durchsetzt, eine Abstufung zwischen Benutzer- und root-Berechtigungen. Ein Benutzer kann Berechtigungen zum Ausführen von Vorgängen erhalten, die über die Berechtigungen gewöhnlicher Benutzer hinausgehen, und root kann auf weniger Berechtigungen beschränkt werden, als root derzeit besitzt. Mithilfe von RBAC kann ein Befehl, der mit Berechtigungen ausgeführt wird, in einem Berechtigungsprofil isoliert und einem Benutzer oder einer Rolle zugewiesen werden. In Tabelle 8-1 wird die Abstufung zwischen Benutzer- und Root-Berechtigungen zusammengefasst, die das Modell aus RBAC und dem Berechtigungsmodell bietet.

Das Berechtigungsmodell bietet höhere Sicherheit als das Superuser-Modell. Berechtigungen, die aus einem Prozess entfernt wurden, können nicht genutzt werden. Prozessberechtigungen verhindern, dass ein Programm oder Verwaltungskonto Zugriff auf alle Berechtigungen erhält. Prozessberechtigungen können eine zusätzliche Schutzmaßnahme für vertrauliche Dateien zur Verfügung stellen, wobei DAC-Schutz genutzt werden kann, um Zugriff zu erhalten.

Berechtigungen können Programme und Prozesse auf die Berechtigungen beschränken, die das Programm zur Ausführung benötigt. Dies wird als Prinzip der geringsten Berechtigung bezeichnet. Auf einem System, das die geringste Berechtigung implementiert, hat ein Eindringling bei Übernahme eines Prozesses nur Zugriff auf die Berechtigungen dieses Prozesses. Das restliche System wird nicht beeinträchtigt.

Berechtigungsbeschreibungen

Berechtigungen werden logisch auf der Basis des Bereichs der Berechtigung gruppiert.

Einige Berechtigungen haben beschränkte, andere umfassende Auswirkungen auf das System. Die Definition der Berechtigung proc_taskid weist auf ihre beschränkten Auswirkungen hin:

proc_taskid
        Allows a process to assign a new task ID to the calling process.

Die Definition der Berechtigung file_setid weist auf ihre umfassenden Auswirkungen hin:

net_rawaccess
        Allow a process to have direct access to the network layer.

Auf der Manpage privileges(5) finden Sie Beschreibungen zu allen Berechtigungen. Der Befehl ppriv -lv druckt eine standardmäßige Beschreibung jeder Berechtigung.

Administrative Unterschiede auf einem System mit Berechtigungen

Ein System mit Berechtigungen weist mehrere sichtbare Unterschiede zu einem System ohne Berechtigungen auf. In der folgenden Tabelle werden einige dieser Unterschiede aufgeführt.

Tabelle 8-2 Sichtbare Unterschiede zwischen einem System mit Berechtigungen und einem System ohne Berechtigungen

Funktion
Keine Berechtigungen
Berechtigungen
Dämonen
Dämonen werden als root ausgeführt.
Dämonen werden als Benutzer daemon ausgeführt.

Die folgenden Dämonen haben beispielsweise geeignete Berechtigungen erhalten und werden als daemon ausgeführt: lockd, nfsd und rpcbind.

Eigentümerschaft der Protokolldatei
Protokolldateien gehören root.
Protokolldateien gehören nicht daemon, der die Protokolldatei erstellt hat. Die Datei gehört nicht dem root-Benutzer.
Fehlermeldungen
Fehlermeldungen beziehen sich auf den Superuser.

Beispiel: chroot: not superuser

Fehlermeldungen geben die Verwendung von Berechtigungen wieder.

Die äquivalente Fehlermeldung bei Fehlschlagen von chroot ist z. B. chroot: exec failed.

setuid-Programme
Programme verwenden setuid zum Erfüllen von Aufgaben, zu deren Ausführung gewöhnliche Benutzer nicht berechtigt sind.
Viele setuid-Programme wurden für die Ausführung mit Berechtigungen geändert.

Die folgenden Dienstprogramme verwenden beispielsweise Berechtigungen: ufsdump, ufsrestore, rsh, rlogin, rcp , rdist, ping, traceroute und newtask.

Dateiberechtigungen
Geräteberechtigungen werden von DAC kontrolliert. Mitglieder der Gruppe sys können beispielsweise /dev/ip öffnen.
Dateiberechtigungen (DAC) sehen nicht voraus, wer ein Gerät öffnen kann. Geräte werden von DAC und Geräterichtlinien geschützt.

Die Datei /dev/ip hat beispielsweise die 666 Berechtigungen, aber das Gerät kann nur von einem Prozess mit den geeigneten Berechtigungen geöffnet werden. Raw-Sockets werden noch immer durch DAC geschützt.

Prüfereignisse
Die Prüfung der Verwendung des Befehls su deckt viele administrative Funktionen ab.
Die Prüfung der Verwendung von Berechtigungen deckt die meisten administrativen Funktionen ab. Die Prüfklassen pm und as enthalten Prüfereignisse, die Geräterichtlinien konfigurieren und Prüfereignisse, die Berechtigungen festlegen.
Prozesse
Prozesse werden vom Eigentümer des Prozesses geschützt.
Prozesse werden von Berechtigungen geschützt. Prozessberechtigungen und Prozess-Flags sind als neuer Eintrag priv im Verzeichnis /proc/<pid> sichtbar.
Fehlersuche
Keine Referenz zu Berechtigungen in Speicherabzügen
Der Hinweisabschnitt ELF von Speicherabzügen enthält Informationen zu Prozessberechtigungen und Flags in den Hinweisen NT_PRPRIV und NT_PRPRIVINFO.

Das Dienstprogramm ppriv und andere Dienstprogramme zeigen die korrekte Anzahl von Sätzen der richtigen Größe. Die Dienstprogramme ordnen die Bits in den Bit-Sätzen den korrekten Berechtigungsnamen zu.

Berechtigungen und Systemressourcen

Ab der Version Solaris 10 8/07 können die Ressourcensteuerungen project.max-locked-memory und zone.max-locked-memory verwendet werden, um den Speicherplatzverbrauch von Prozessen zu begrenzen, denen die Berechtigung PRIV_PROC_LOCK_MEMORY zugewiesen ist. Diese Berechtigung ermöglicht einem Prozess das Sperren von Seiten im physischen Speicher.

Wenn Sie die Berechtigung PRIV_PROC_LOCK_MEMORY einem Berechtigungsprofil zuweisen, können Sie den Prozessen mit dieser Berechtigung die Möglichkeit zum Sperren des gesamten Speichers geben. Richten Sie als Schutzmaßnahme eine Ressourcensteuerung ein, um zu verhindern, dass der Benutzer der Berechtigung den gesamten Speicher sperrt. Stellen Sie für privilegierte Prozesse, die in einer nicht globalen Zone ausgeführt werden, die Ressourcensteuerung zone.max-locked-memory ein. Erstellen Sie ein Projekt für privilegierte Prozesse, die auf einem System ausgeführt werden, und richten Sie die Ressourcensteuerung project.max-locked-memory ein. Informationen zu diesen Ressourcensteuerungen finden Sie in Kapitel 6, Einführung in die Resource Controls in Systemverwaltungshandbuch: Oracle Solaris Container – Ressourcenverwaltung und Solaris Zones und Kapitel 17, Einführung in die Konfiguration einer nicht-globalen Zone in Systemverwaltungshandbuch: Oracle Solaris Container – Ressourcenverwaltung und Solaris Zones.

Implementieren von Berechtigungen

Jeder Prozess hat vier Berechtigungssätze, die festlegen, ob ein Prozess eine bestimmte Berechtigung verwenden kann. Der Kernel berechnet automatisch den effektiven Berechtigungssatz. Sie können den ursprünglichen vererbbaren Berechtigungssatz ändern. Ein Programm, das zur Verwendung von Berechtigungen verschlüsselt wurde, kann den zugelassenen Berechtigungssatz des Programms reduzieren. Sie können den begrenzten Berechtigungssatz verkleinern.

Der Kernel erkennt einen grundlegendes Berechtigungssatz. Auf einem unveränderten System entspricht der ursprünglich vererbbare Satz jedes Benutzers dem grundlegenden Satz bei der Anmeldung. Sie können den ursprüngliche vererbbaren Satz des Benutzers ändern. Der grundlegende Satz kann nicht geändert werden.

Auf einem unveränderten System würde der Berechtigungssatz eines Benutzers bei der Anmeldung ähnlich dem folgenden aussehen:

E (Effective): basic
I (Inheritable): basic
P (Permitted): basic
L (Limit): all

Daher ist der grundlegende Satz aller Benutzer bei der Anmeldung in ihrem vererbbaren Satz, ihrem zugelassenen Satz und ihrem effektiven Satz enthalten. Der begrenzte Satz eines Benutzers enthält alle Berechtigungen. Um mehr Berechtigungen zum effektiven Satz des Benutzers hinzuzufügen, müssen Sie dem Benutzer ein Berechtigungsprofil zuweisen. Das Berechtigungsprofil schließt dann Befehle ein, denen Sie Berechtigungen hinzugefügt haben. Sie können zudem Berechtigungen direkt dem Benutzer oder der Rolle zuweisen, auch wenn solche Berechtigungszuweisungen riskant sein können. Informationen zu den Risiken finden Sie unter Sicherheitsüberlegungen bei direkter Zuweisung von Sicherheitsattributen.

Zuweisen von Berechtigungen zu Prozessen

Prozesse können Berechtigungen erben. Es können ihnen auch Berechtigungen zugewiesen werden. Ein Prozess erbt Berechtigungen von seinem übergeordneten Prozess. Bei der Anmeldung legt der ursprüngliche vererbbare Berechtigungssatz des Benutzers fest, welche Berechtigungen den Prozessen des Benutzers zur Verfügung stehen. Alle untergeordneten Prozesse der erstmaligen Anmeldung des Benutzers erben diesen Satz.

Sie können Programmen, Benutzern und Rollen auch direkt Berechtigungen zuweisen. Wenn ein Programm Berechtigungen erfordert, weisen Sie die Berechtigungen der ausführbaren Datei des Programms in einem Berechtigungsprofil zu. Benutzern oder Rollen, die zur Ausführung des Programms zugelassen sind, wird das Profil zugewiesen, das das Programm enthält. Bei der Anmeldung oder beim Zugriff auf eine Profil-Shell wird das Programm mit Berechtigung ausgeführt, wenn die ausführbare Datei des Programms in die Profil-Shell eingegeben wird. Eine Rolle, die das Profil "Object Access Management" beinhaltet, kann den Befehl chmod mit der Berechtigung file_chown ausführen.

Wenn eine Rolle oder ein Benutzer ein Programm ausführt, dem direkt eine zusätzliche Berechtigung zugewiesen wurde, wird die zugewiesene Berechtigung dem vererbbaren Satz der Rolle oder des Benutzers hinzugefügt. Untergeordnete Prozesse des Programms, dem Berechtigungen zugewiesen wurden, erben die Berechtigungen des übergeordneten Prozesses. Wenn der untergeordnete Prozess mehr Berechtigungen erfordert als der übergeordnete Prozess, müssen dem untergeordneten Prozess diese Berechtigungen direkt zugewiesen werden.

Programme, die zur Verwendung von Berechtigungen entwickelt wurden, werden als Berechtigungen erkennende Programme bezeichnet. Ein Berechtigungen erkennendes Programm aktiviert und deaktiviert die Verwendung von Berechtigungen während der Programmausführung. Um in einer Produktionsumgebung erfolgreich ausgeführt zu werden, müssen dem Programm die Berechtigungen zugewiesen werden, die es aktiviert und deaktiviert.

Beispiele für Berechtigungen erkennenden Code finden Sie in Kapitel 2, Developing Privileged Applications in Developer’s Guide to Oracle Solaris Security. Informationen zum Zuweisen der erforderlichen Berechtigungen zu einem Programm finden Sie unter So fügen Sie Berechtigungen zu einem Befehl hinzu.

Zuweisen von Berechtigungen

Sie sind in Ihrer Funktion als Systemadministrator für das Zuweisen von Berechtigungen verantwortlich. Normalerweise weisen Sie die Berechtigung einem Befehl in einem Berechtigungsprofil zu. Das Berechtigungsprofil wird dann einer Rolle oder einem Benutzer zugewiesen. Die Solaris Management Console bietet eine grafische Benutzeroberfläche (Graphical User Interface, GUI) zum Zuweisen von Berechtigungen. Berechtigungen können auch durch Verwenden von Befehlen wie smuser und smrole zugewiesen werden. Weitere Informationen zur Verwendung der GUI zum Zuweisen von Berechtigungen finden Sie in Kapitel 9Rollenbasierte Zugriffssteuerung (Aufgaben).

Berechtigungen können einem Benutzer direkt zugewiesen werden. Wenn Sie einem Teil der Benutzer eine Berechtigung zur verantwortungsvollen Verwendung während ihrer Sitzungen gewähren möchten, können Sie diese Berechtigung direkt zuweisen. Besonders geeignet für direkte Zuweisung sind Berechtigungen mit beschränkten Auswirkungen, z. B. proc_clock_highres. Berechtigungen mit umfassenden Auswirkungen, z. B. file_dac_write, sind weniger für direkte Zuweisung geeignet.

Berechtigungen können einem Benutzer oder einem System auch verweigert werden. Beim Entfernen von Berechtigungen aus dem ursprünglichen vererbbaren Satz oder dem begrenzten Satz eines Benutzers oder Systems muss äußerst vorsichtig vorgegangen werden.

Erweitern der Berechtigungen eines Benutzers oder einer Rolle

Benutzer und Rollen verfügen über einen vererbbaren Berechtigungssatz und einen begrenzten Berechtigungssatz. Der begrenzte Satz kann nicht erweitert werden, da die ursprünglich festgelegte Begrenzung alle Berechtigungen umfasst. Der ursprüngliche vererbbare Satz kann für Benutzer, Rollen und Systeme erweitert werden. Eine Berechtigung, die nicht im vererbbaren Satz enthalten ist, kann auch einem Prozess zugewiesen werden.

Die Zuweisung von Berechtigungen pro Prozess ist die präziseste Art zum Hinzufügen von Berechtigungen. Sie können die Anzahl privilegierter Vorgänge, die ein Benutzer ausführen kann, erweitern, indem Sie dem Benutzer das Annehmen einer Rolle ermöglichen. Der Rolle würden Profile zugewiesen, die Befehle mit hinzugefügten Berechtigungen umfassen. Wenn der Benutzer die Rolle annimmt, erhält er die Profil-Shell der Rolle. Bei Eingabe in die Shell der Rolle werden die Befehle in den Profilen der Rolle mit den hinzugefügten Berechtigungen ausgeführt.

Sie können auch ein Profil dem Benutzer zuweisen statt einer Rolle, die der Benutzer annimmt. Das Profil würde Befehle mit hinzugefügten Berechtigungen einschließen. Wenn der Benutzer eine Profil-Shell öffnet, z. B. pfksh, kann er die Befehle im Profil des Benutzers mit Berechtigung ausführen. In einer normalen Shell werden die Befehle nicht mit Berechtigung ausgeführt. Der privilegierte Prozess kann nur in einer privilegierten Shell ausgeführt werden.

Das Erweitern der ursprünglich vererbbaren Berechtigungssätze für Benutzer, Rollen oder Systeme ist eine riskantere Methode zum Zuweisen von Berechtigungen. Alle Berechtigungen im vererbbaren Satz befinden sich in den zugelassenen und effektiven Sätzen. Alle Befehle, die der Benutzer oder die Rolle in eine Shell eingibt, können die direkt zugewiesenen Berechtigungen verwenden. Direkt zugewiesene Berechtigungen ermöglichen einem Benutzer oder einer Rolle die einfache Ausführung von Vorgängen, die außerhalb der Grenzen ihrer administrativen Verantwortlichkeiten liegen können.

Wenn Sie etwas zum ursprünglichen vererbbaren Berechtigungssatz auf einem System hinzufügen, steht allen Benutzern, die sich beim System anmelden, ein größerer Satz grundlegender Berechtigungen zur Verfügung. Eine solche direkte Zuweisung ermöglicht allen Benutzern des Systems die einfache Ausführung von Vorgängen, die wahrscheinlich außerhalb der Grenzen gewöhnlicher Benutzer liegen.


Hinweis - Der begrenzte Satz kann nicht erweitert werden, da die ursprünglich festgelegte Begrenzung alle Berechtigungen umfasst.


Beschränken der Berechtigungen eines Benutzers oder einer Rolle

Durch das Entfernen von Berechtigungen können Sie verhindern, dass Benutzer und Rollen bestimmte Aufgaben ausführen. Sie können Berechtigungen aus dem ursprünglichen vererbbaren Satz und dem begrenzten Satz entfernen. Sie sollten das Entfernen von Berechtigungen vorsichtig testen, bevor Sie einen ursprünglichen vererbbaren Satz oder einen begrenzten Satz verteilen, der kleiner als der Standardsatz ist. Durch das Entfernen von Berechtigungen aus dem ursprünglichen vererbbaren Satz können Sie Benutzer an der Anmeldung hindern. Wenn Berechtigungen aus dem begrenzten Satz entfernt werden, schlägt ein setuid-Legacy-Programm möglicherweise fehl, da das Programm eine Berechtigung erfordert, die entfernt wurde.

Zuweisen von Berechtigungen zu einem Skript

Skripten sind ebenso wie Befehle ausführbare Dateien. Daher können Sie in einem Berechtigungsprofil ebenso Berechtigungen zu einem Skript hinzufügen wie zu einem Befehl. Das Skript wird mit den hinzugefügten Berechtigungen ausgeführt, wenn ein Benutzer oder eine Rolle, dem/der das Profil zugewiesen wurde, das Skript in einer Profil-Shell ausführt. Wenn das Skript Befehle enthält, die Berechtigungen erfordern, sollten sich die Befehle mit hinzugefügten Berechtigungen ebenfalls im Profil befinden.

Berechtigungen erkennende Programme können Berechtigungen pro Prozess beschränken. Ihre Aufgabe mit einem Berechtigungen erkennenden Programm besteht darin, der ausführbaren Datei nur die Berechtigungen zuzuweisen, die das Programm benötigt. Anschließend testen Sie das Programm, um sicherzustellen, dass es seine Aufgaben erfolgreich ausführt. Sie müssen auch prüfen, dass das Programm seine Berechtigungen nicht missbraucht.

Berechtigungen und Geräte

Das Berechtigungsmodell verwendet Berechtigungen zum Schutz von Systemschnittstellen, die allein durch Dateiberechtigungen im Superuser-Modell geschützt werden. In einem System mit Berechtigungen sind Dateiberechtigungen zu schwach, um die Schnittstellen zu schützen. Eine Berechtigung wie proc_owner könnte Dateiberechtigungen überschreiben und vollen Zugriff auf das gesamte System gewähren.

Daher reicht die Eigentümerschaft des Geräteverzeichnisses nicht zum Öffnen eines Geräts aus. So dürfen beispielsweise Elemente der Gruppe sys nicht mehr automatisch das Gerät /dev/ip öffnen. /dev/ip hat die Dateiberechtigungen 0666, aber es wird die Berechtigung net_rawaccess wird benötigt, um das Gerät zu öffnen.

Die Geräterichtlinie wird von Berechtigungen gesteuert. Der Befehl getdevpolicy zeigt die Geräterichtlinie für jedes Gerät an. Der Gerätekonfigurationsbefehl devfsadm installiert die Geräterichtlinie. Der Befehl devfsadm verbindet Berechtigungssätze mit dem Befehl open zum Lesen und Schreiben auf bzw. von Geräten. Weitere Informationen finden Sie auf den Manpages getdevpolicy(1M) und devfsadm(1M).

Die Geräterichtlinie ermöglicht höhere Flexibilität durch Gewähren von Berechtigungen zum Öffnen von Geräten. Sie können andere oder mehr Berechtigungen als von der Standardgeräterichtlinie vorgesehen anfordern. Die Berechtigungsanforderungen können für die Geräterichtlinie und den Treiber entsprechend geändert werden. Sie können die Berechtigungen beim Installieren, Hinzufügen oder Aktualisieren eines Gerätetreibers ändern.

Mit den Befehlen add_drv und update_drv können Geräterichtlinieneinträge und treiberspezifische Berechtigungen geändert werden. Sie müssen einen Prozess mit dem vollständigen Berechtigungssatz ausführen, um die Geräterichtlinie zu ändern. Weitere Informationen finden Sie auf den Manpages add_drv(1M) und update_drv(1M).

Berechtigungen und Fehlersuche

Oracle Solaris bietet Tools zur Fehlersuche beim Fehlschlagen von Berechtigungen. Die Befehle ppriv und truss bieten eine Fehlersuchausgabe. Beispiele hierzu finden Sie auf der Manpage ppriv(1). Ein Beispiel für ein Verfahren finden Sie unter So legen Sie die für ein Programm erforderlichen Berechtigungen fest.