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)
Rollenbasierte Zugriffssteuerung (Übersicht)
RBAC: eine Alternative zum Superuser-Modell
Oracle Solaris RBAC-Elemente und Basiskonzepte
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
Sicherheitsüberlegungen bei direkter Zuweisung von Sicherheitsattributen
Berechtigungen zum Schutz von Kernel-Prozessen
Administrative Unterschiede auf einem System mit Berechtigungen
Berechtigungen und Systemressourcen
Implementieren von Berechtigungen
Zuweisen von Berechtigungen zu Prozessen
Erweitern der Berechtigungen eines Benutzers oder einer Rolle
Beschränken der Berechtigungen eines Benutzers oder einer Rolle
9. Rollenbasierte Zugriffssteuerung (Aufgaben)
10. Rollenbasierte Zugriffssteuerung (Übersicht)
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)
19. Verwenden von Oracle Solaris Secure Shell (Aufgaben)
20. Oracle Solaris Secure Shell (Referenz)
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)
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.
Informationen zu RBAC finden Sie unter Rollenbasierte Zugriffssteuerung (Übersicht).
Informationen zum Verwalten von Berechtigungen finden Sie in Kapitel 11Berechtigungen (Aufgaben).
Referenzinformationen zu Berechtigungen finden Sie in Kapitel 12Berechtigungen (Referenz).
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.
Berechtigungen werden logisch auf der Basis des Bereichs der Berechtigung gruppiert.
FILE Berechtigungen: Berechtigungen, die mit der Zeichenfolge file beginnen, werden auf Dateisystemobjekte angewendet. Die Berechtigung file_dac_write überschreibt beispielsweise beim Schreiben in Dateien wahlfreie Zugangskontrollen.
IPC Berechtigungen: Berechtigungen, die mit der Zeichenfolge ipc beginnen, überschreiben die IPC-Objektzugriffssteuerung. Die Berechtigung ipc_dac_read ermöglicht einem Prozess beispielsweise, gemeinsam genutzten Remote-Speicher, der durch DAC geschützt wird, zu lesen.
NET Berechtigungen: Berechtigungen, die mit der Zeichenfolge net beginnen, gewähren Zugriff auf spezifische Netzwerkfunktionen. Die Berechtigung net_rawaccess ermöglicht Geräten beispielsweise, eine Verbindung zum Netzwerk herzustellen.
PROC Berechtigungen: Berechtigungen, die mit der Zeichenfolge proc beginnen, ermöglichen Prozessen das Ändern beschränkter Eigenschaften des Prozesses selbst. PROC-Berechtigungen umfassen auch Berechtigungen mit sehr eingeschränkten Auswirkungen. Die Berechtigung proc_clock_highres ermöglicht einem Prozess die Verwendung hochauflösender Timer.
SYS Berechtigungen: Berechtigungen, die mit der Zeichenfolge sys beginnen, gewähren Prozessen unbeschränkten Zugriff auf verschiedene Systemeigenschaften. Die Berechtigung sys_linkdir ermöglicht einem Prozess beispielsweise, Hard Links zu Verzeichnissen herzustellen und zu entfernen.
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.
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
|
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.
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.
Effektiver Berechtigungssatz oder E: Der derzeit ausgeführte Berechtigungssatz. Ein Prozess kann Berechtigungen hinzufügen, die sich im zugelassenen Satz oder dem effektiven Satz befinden. Ein Prozess kann zudem Berechtigungen aus E entfernen.
Zugelassener Berechtigungssatz oder P: Der für die Verwendung verfügbare Berechtigungssatz. Berechtigungen können einem Programm durch Vererbung oder Zuweisung zur Verfügung stehen. Ein Ausführungsprofil stellt eine Methode dar, einem Programm Berechtigungen zuzuweisen. Der Befehl setuid weist alle Berechtigungen von root einem Programm zu. Berechtigungen können aus dem zugelassenen Satz entfernt, ihm jedoch nicht hinzugefügt werden. Berechtigungen, die aus P entfernt werden, werden automatisch auch aus E entfernt.
Ein Berechtigungen erkennendes Programm entfernt die Berechtigungen, die ein Programm nie verwendet, aus dem zugelassenen Satz des Programms. Auf diese Weise können nicht erforderliche Berechtigungen nicht vom Programm oder einem böswilligen Prozess ausgenutzt werden. Weitere Informationen zu Berechtigungen erkennenden Programmen finden Sie in Kapitel 2, Developing Privileged Applications in Developer’s Guide to Oracle Solaris Security.
Vererbbarer Berechtigungssatz oder I: Der Berechtigungssatz, den ein Prozess über einen Aufruf von exec erben kann. Nach dem Aufruf von exec sind die zugelassenen und effektiven Sätze gleich, außer im Sonderfall eines setuid-Programms.
Für ein setuid-Programm wird der vererbbare Satz nach dem Aufruf von exec zunächst vom begrenzten Satz eingeschränkt. Anschließend wird der geerbte Berechtigungssatz (I), abzüglich aller Berechtigungen im begrenzten Satz (L), den Berechtigungssätzen P und E für diesen Prozess zugewiesen.
Begrenzter Berechtigungssatz oder L: Die äußere Begrenzung dessen, welche Berechtigungen einem Prozess und seinen untergeordneten Prozessen zur Verfügung stehen. Standardmäßig umfasst der begrenzte Satz alle Berechtigungen. Prozesse können den begrenzten Satz einschränken, aber nicht erweitern. L wird verwendet, um I einzuschränken. Infolgedessen beschränkt L bei Aufruf von exec P und E.
Wenn einem Benutzer ein Profil zugewiesen wurde, das ein Programm umfasst, dem Berechtigungen zugewiesen wurden, kann der Benutzer dieses Programm normalerweise ausführen. Auf einem unveränderten System befinden sich die zugewiesenen Berechtigungen eines Programms innerhalb des begrenzten Satzes des Benutzers. Die Berechtigungen, die dem Programm zugewiesen wurden, werden Teil des zugelassenen Satzes des Benutzers. Um das Programm auszuführen, dem Berechtigungen zugewiesen wurden, muss der Benutzer das Programm von einer Profil-Shell ausführen.
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.
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.
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.
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.
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.
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.
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).
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.