PDA

View Full Version : Berechtigungsproblem



Seiten : [1] 2

muadeep
26-04-05, 15:41
Ist es möglich einem User der zur Benutzerklasse "*PGMR" gehöhrt und Sonderberechtigungen von *allobj, *jobctl, *savsys, *secadm besitzt, bestimmt Verzeichnisse/Objekte erst gar nicht anzuzeigen, bzw. ihm keine Rechte für bestimmte Verzeichnsse oder Objekte zu geben?

ist das bei "Mit Objektverbindungen arbeiten" -> "2=editieren" ->
z.B. einfach "*exclude" oder ähnliches möglich?

Muß dazu sagen, das Verzeichnis bzw. die Objekte hat/haben für "*public" -> "*rwx" Rechte!

Fuerchau
26-04-05, 15:43
*ALLOBJ heißt für alles berechtigt !
Das kann man nicht mehr ausschliessen !!!
Da hilft nur *ALLOBJ entziehen !!!!!!

Wieso braucht ein *PGMR überhaupt *ALLOBJ ????

muadeep
26-04-05, 18:25
welche Rechte sollte er den bekommen, damit er vernünftig arbeiten kann und obiges (=keinen Zugriff auf bestimmte Verzeichnisse/Ordner bzw. Objekte) hat?

Hubert
27-04-05, 07:23
welche Rechte sollte er den bekommen, damit er vernünftig arbeiten kann und obiges (=keinen Zugriff auf bestimmte Verzeichnisse/Ordner bzw. Objekte) hat?
Erstelle ein Benutzerprofil mit den Sonderrechten und weise ihm dieses als Gruppenprofil zu. Dann kannst du ihm auch die Rechte an bestimmten Objekten verweigern.

Fuerchau
27-04-05, 10:01
Mit den Gruppenprofilen ist das so eine Sache.
Ein Benutzer ERBT sämtliche Rechte des Gruppenprofiles. Die eigenen Rechte sind ZUSÄTZLICH.
Hat also das Gruppenprofile *ALLOBJ hat auch der Benutzer *ALLOBJ.

Welche Rechte braucht ein *PGMR ?
Ob *ALLOBJ und *SECADM wirklich erforderlich sind hängt tatsächlich von der Aufgabenstellung ab.
*ALLOBJ ist NIE erforderlich wenn ganz normale Nutzungsrechte an z.B. den Quellbibliotheken und/oder Datenbibliotheken vorhanden sind.
Soll eine zusätzliche Berechtigung erteilt werden gibt man diese an der Lib oder dem Objekt oder definiert das Ganze über Berechtigungslisten (AUTL).

*SECADM sollte WIRKLICH nur demjenigen zustehen, der auch für die Pflege von Sicherheit und Profilen verantwortlich ist.
Wird dies nur benötigt um z.B. ein Kennwort zurückzusetzen oder ein Profil freizuschalten legt man das in eigene CMD's die dann z.B. unter QSECOFR-Rechten laufen. Hier sollte allerdings darauf geachtet werden, dass dann nicht Profile mit *ALLOBJ oder *SECADM verändert werden können, sonst ist die Tür wieder sperrangelweit auf.

Hubert
27-04-05, 19:56
Mit den Gruppenprofilen ist das so eine Sache.
Ein Benutzer ERBT sämtliche Rechte des Gruppenprofiles. Die eigenen Rechte sind ZUSÄTZLICH.
Hat also das Gruppenprofile *ALLOBJ hat auch der Benutzer *ALLOBJ.


Einspruch: Die Berechtigungen werden in drei Stufen geprüft:

Benutzer
Gruppenprofil
*PUBLIC

In jeder dieser Stufen wird in der Reihenfolge geprüft:
*ALLOBJ (natürlich nicht bei *PUBLIC)
Objektberechtigung
Berechtigungslisteneintrag

Sobald eine (nicht-) Berechtigung festgestellt wird, endet die Prüfung und die gefundene Berechtigung wird angewendet.
Wenn also dem Benutzer, der selbst kein *ALLOBJ hat, die Berechtigung explizit entzogen wird, kann er auf das Objekt nicht zugreifen.

Deine weiteren Anmerkungen kann ich allerdings voll unterstreichen. Allerdings habe ich in der Praxis oft festgestellt, dass gerne allen Benutzern einfach *ALLOBJ "verpasst" wird, weil man sich nicht die Mühe macht, ein vernünftiges Berechtigungskonzept auszuarbeiten.

Fuerchau
28-04-05, 10:40
Wenn das Gruppenprofil *ALLOBJ hat hat auch der User *ALLOBJ.

Hubert
28-04-05, 18:49
Wenn das Gruppenprofil *ALLOBJ hat hat auch der User *ALLOBJ.

Jetzthast du mich doch tatsächlich verunsichert. Deshalb hab ich es noch einmal ausprobiert:

Benutzerprofil PGMR mit Berechtigungen *PGMR und einem Gruppenprofil mit *ALLOBJ erstellt.

Auf ein bestehendes Objekt GRTOBJAUT OBJ(QDDSSRC) OBJBJTYPE(*FILE) USER(PGMR) AUT(*EXCLUDE)

Der Benutzer kann auf das Objekt nicht zugreifen, obwohl er das Gruppenprofil drin hat.

Fuerchau
28-04-05, 21:44
Ja OK, OK, OK.
Wenn der User dann explizit ausgeschlossen ist, probierst doch auch mal wenn *PUBLIC *EXCLUDE ist.

Fuerchau
29-04-05, 09:30
Wenn man sich nur ein wenig Mühe gibt, kann man sich über die Gruppenberechtigung *ALLOBJ selbst die Berechtigung *ALLOBJ und auch *SECADM, also alles was geht, vergeben.
Sobald man *ALLOBJ besitzt, hilft auch kein Ausschluss der Berechtigung mehr !!
*ALLOBJ erlaubt eben ALLES !

Wie es geht ?
Schon mehrfach diskutiert und immer wieder gerne verwendet:
CHGPGM ... USRPRF(*OWNER)

Und schon kann ich ein Programm schreiben, dass unter der Berechtigung des Eigners, nämlich mein Gruppenprofil, läuft.
Jetzt benötige ich nur noch ein kleines CLP:

PGM
ADDJOBSCDE JOB(TEST) CMD(CHGUSRPRF USRPRF(MYPROF) +
SPCAUT(*JOBCTL *ALLOBJ *SECADM)) FRQ(*ONCE) +
USER(QSECOFR)
ENDPGM

Umwandeln, als Eigner das Gruppenprofil eintragen und unter Gruppenprofilrechten laufen lassen (CRTCLPGM ... USRPRF(*OWNER) bzw. CHGPGM) und nur noch per CALL aufrufen.
Und siehe da: Ich habe *ALLOBJ und sogar *SECADM und habe das gesamte System zur Verfügung !!!

ALSO VORSICHT MIT *ALLOBJ !!!!