mit opsi script erstellten Ordern für normaluser sperren

Antworten
Rzpertt
Beiträge: 121
Registriert: 15 Jan 2021, 10:41

mit opsi script erstellten Ordern für normaluser sperren

Beitrag von Rzpertt »

Hallo,

ich erstelle in meinen Produkten eine Ordner in dem einige Software landet.
Wie kann ich diesen Ordner nur für Opsi und den Admins freigeben bzw. die Rechte dafür ändern?

Im Handbuch habe ich dazu nichts gefunden.
Ich wollte was mit "icacls" bauen, ist der Opsi User in der Admingruppe oder in System oder auch normaler User?

Ich würde "Benutzer" und "Authentifizierte Benutzer" einfach für den Ordner rausnehmen,
dann eine ACL erstellen und diese nach dem anlegen des Ordners importieren.

Im script lege ich den Ordner so an:

Code: Alles auswählen

[DosInAnIcon_Create]
mkdir "$tempordner$"
Ich habe das mal in der Powershell gebaut, geht das kürzer?

Code: Alles auswählen

#Vererbung deaktivieren
$acl = Get-Acl C:\temp\
$acl.SetAccessRuleProtection($true,$false)
$acl | Set-Acl C:\temp\

#Rechte für "admin" setzen
$acl = Get-Acl C:\temp\
$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule("PCNAME"\admin","FullControl","Allow")
$acl.SetAccessRule($AccessRule)
$acl | Set-Acl C:\temp\

#Benutzer die Rechte nehmen
$acl = Get-Acl C:\temp\
$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule("VORDEFINIERT\Benutzer","FullControl","Allow")
$acl.RemoveAccessRule($AccessRule)
$acl | Set-Acl C:\temp\

#Benutzer den Rest nehmen
$acl = Get-Acl C:\temp\
$usersid = New-Object System.Security.Principal.Ntaccount ("VORDEFINIERT\Benutzer")
$acl.PurgeAccessRules($usersid)
$acl | Set-Acl C:\temp\
Rzpertt
Beiträge: 121
Registriert: 15 Jan 2021, 10:41

Re: mit opsi script erstellten Ordern für normaluser sperren

Beitrag von Rzpertt »

ich habe mir 2 ps1 scripte gebaut und rufe die so auf:

Code: Alles auswählen


DefVar $Vererbung$
set $Vererbung$ = GetProductProperty("Vererbung","")

DefVar $PSSkript$
if $Vererbung$ = "an"
	set $PSSkript$ = "reset_rights_tempinstall.ps1"
else
	set $PSSkript$ = "set_rights_tempinstall.ps1"
endif

ShellScript_setpolicy
ExecWith_powershell  powershell.exe
;if $Vererbung$ = "an"
;	ExecWith_powershell  powershell.exe
;else
;	ExecWith_powershell_off  powershell.exe
;endif

set $exitcode$ = getLastExitcode
if not ($exitcode$ = "0")
	comment "powershell script failed"
endif

[ShellScript_setpolicy]
echo "powershell set-executionpolicy RemoteSigned ..."
powershell.exe set-executionpolicy RemoteSigned
exit %ERRORLEVEL%

[ExecWith_powershell]
powershell.exe "%ScriptPath%\$PSSkript$"
if ($?) {Exit(0)}
else {Exit(1)}
ISt das so einigermassen elegant und opsi konform?
Geht auf jeden Fall super und ich kann den Ordner auch noch per opsi bespielen.
Benutzeravatar
n.doerrer
uib-Team
Beiträge: 408
Registriert: 23 Okt 2020, 16:11

Re: mit opsi script erstellten Ordern für normaluser sperren

Beitrag von n.doerrer »

Ich kann mir vorstellen, dass das so funktioniert, ja. Aber setacl ist meines Wissens nicht immer vorhanden.
Wir nutzen intern mittlerweile "icacls", was allerdings eine ganz andere Syntax hat. Siehe z.B. https://github.com/opsi-org/opsi-client ... cript#L629


Vielen Dank für die Nutzung von opsi. Im Forum ist unser Support begrenzt.

Für den professionellen Einsatz und individuelle Beratung empfehlen wir einen Support-Vertrag und eine Schulung.
Gerne informieren wir Sie zu unserem Angebot.

uib GmbH
Telefon: +49 6131 27561 0
E-Mail: sales@uib.de


Rzpertt
Beiträge: 121
Registriert: 15 Jan 2021, 10:41

Re: mit opsi script erstellten Ordern für normaluser sperren

Beitrag von Rzpertt »

Hallo,

danke dafür.
Ich habe das hier gebaut.

Code: Alles auswählen

[DosInAnIcon_set_temp_permissions]
icacls c:\temp /inheritance:r
icacls c:\temp /grant:r "*S-1-5-32-544:(OI)(CI)F" /grant:r "*S-1-5-18:(OI)(CI)F" /grant:r "admin:(OI)(CI)F"
icacls "$VarDir$" /setowner SYSTEM

[DosInAnIcon_set_temp_vererbung_an]
icacls c:\temp /q /c /t /reset
icacls "$VarDir$" /setowner SYSTEM
Jetzt hat er aber einiges doppelt drin wenn ich die vererbung wieder anmache

Code: Alles auswählen

C:\>icacls temp
tempinstall UG-UTVTBIB-CB1Q\admin:(OI)(CI)(F)
            NT-AUTORITÄT\SYSTEM:(OI)(CI)(F)
            VORDEFINIERT\Administratoren:(OI)(CI)(F)
            VORDEFINIERT\Administratoren:(I)(OI)(CI)(F)
            NT-AUTORITÄT\SYSTEM:(I)(OI)(CI)(F)
            VORDEFINIERT\Benutzer:(I)(OI)(CI)(RX)
            NT-AUTORITÄT\Authentifizierte Benutzer:(I)(M)
            NT-AUTORITÄT\Authentifizierte Benutzer:(I)(OI)(CI)(IO)(M)
macht das was?
Benutzeravatar
n.doerrer
uib-Team
Beiträge: 408
Registriert: 23 Okt 2020, 16:11

Re: mit opsi script erstellten Ordern für normaluser sperren

Beitrag von n.doerrer »

Moin,

das sollte eigentlich kein Problem sein. Wenn es eine geerbte und eine explizite Regel gibt, die sich wiedersprechen, müsste die explizite Vorrang haben. Ansonsten ergänzen sie sich.


Vielen Dank für die Nutzung von opsi. Im Forum ist unser Support begrenzt.

Für den professionellen Einsatz und individuelle Beratung empfehlen wir einen Support-Vertrag und eine Schulung.
Gerne informieren wir Sie zu unserem Angebot.

uib GmbH
Telefon: +49 6131 27561 0
E-Mail: sales@uib.de


Antworten