Seite 1 von 1

Berechtigungen für einen Ordner hinzufügen

Veröffentlicht: 25. Juni 2020 – 16:46 Uhr
von Gaetan
Hallo zusammen,
Bei der Installation bestimmter Software benötigt der Endbenutzer Zugriffsrechte für den Ordner.
In einem Kontext, in dem der Benutzer kein Administrator ist, stellt dies jedoch ein Problem dar.

Die von mir verwendete Lösung sieht folgendermaßen aus:
- ein Paket, das ein PowerShell-Modul installiert (wodurch dieses zu einer Abhängigkeit der Software wird)
- ein Skript zum Ändern der Berechtigungen.

Rechte werden für authentifizierte Benutzer auf einen bestimmten Ordner vergeben (können von jeder anderen Gruppe geändert werden).

Das PowerShell-Modul heißt NTFSSecurity und ist hier verfügbar: https://gallery.technet.microsoft.com/s ... dbb2b84e85

Das zur Installation verwendete Paket enthält folgenden Code:

Code: Alle auswählen

# -*- coding: utf-8 -*-
from setuphelpers import * 

uninstallkey = []

targetPWSH = makepath(programfiles,'WindowsPowerShell\Modules\NTFSSecurity')
folderPWSH = 'NTFSSecurity'

def install():

    #copie du module Powershell
    if (isdir(targetPWSH) != True) :
        mkdirs(targetPWSH)
        copytree2(folderPWSH,targetPWSH)
Das verwendete PowerShell-Skript lautet wie folgt:

Code: Alle auswählen

#Autorisation d'accès au dossier pour les utilisateurs loggés
Install-Module NTFSSecurity
$Path = "CHEMIN DU DOSSIER POUR LES DROITS"

#Désactivation de l'héritage
Get-Item $Path | Disable-NTFSAccessInheritance
Add-NTFSAccess –Path $Path -Account "Utilisateurs authentifiés" -AccessRights FullControl
Im WAPT-Paket benötigen Sie lediglich:
- Um Ihr NTFSSecurity-Installationspaket zu einer Abhängigkeit zu machen,
- Platzieren Sie eine .ps1-Datei mit dem PowerShell-Code am Anfang,
- Führen Sie das Skript in Ihrer def install()-Funktion mit folgendem Befehl aus:

Code: Alle auswählen

run('powershell.exe -NoProfile -NonInteractive -executionpolicy bypass -File FICHIER.ps1')
Hoffentlich hilft das.

Betreff: Hinzufügen von Berechtigungen zu einem Ordner

Veröffentlicht: 25. Juni 2020 – 17:05 Uhr
von nliaudat
Oder es gibt die gute alte iCalcs-Methode:

#https://support.microsoft.com/fr-fr/hel ... ng-systems

Code: Alle auswählen

    print('Restricting permissions')
    run(r'icacls.exe "%s" /inheritance:d' % install_dir)
    run(r'icacls.exe "%s" /remove:g "*S-1-5-32-545" /t /c /q' % install_dir) #user
    run(r'icacls.exe "%s" /remove:g "*S-1-5-11" /t /c /q' %  install_dir) #authenticated user
    run(r'icacls.exe "%s" /remove:g "*S-1-5-1" /t /c /q' %  install_dir) #remote
    run(r'icacls.exe "%s" /remove:g "*S-1-1-0" /t /c /q' %  install_dir) #everybody

Betreff: Hinzufügen von Berechtigungen zu einem Ordner

Veröffentlicht: 26. Juni 2020 - 09:18 Uhr
von Gaetan
Danke für die Info =)
Funktioniert es auch gut, wenn Vererbung vorhanden ist?

Betreff: Hinzufügen von Berechtigungen zu einem Ordner

Veröffentlicht: 26. Juni 2020 - 09:42 Uhr
von nliaudat
Perfekt:

Code: Alle auswählen

  iCACLS.exe /inheritance:e|d|r
          e - Enable inheritance
          d - Disable inheritance and copy the ACEs 
          r - Remove all inherited ACEs

Betreff: Hinzufügen von Berechtigungen zu einem Ordner

Veröffentlicht: 26. Juni 2020 - 09:53 Uhr
von Gaetan
Vielen Dank.
Ich werde es so versuchen, das ist einfacher. ;)

Betreff: Hinzufügen von Berechtigungen zu einem Ordner

Veröffentlicht: 1. Juli 2020 - 10:57 Uhr
von Gaetan
Es funktioniert bei mir, danke für den Tipp ;)

Ich habe es folgendermaßen verwendet:

Code: Alle auswählen

run(r'icacls.exe "%s" /inheritancelevel:d /grant *S-1-5-11:(M) /t /C /q' %  TargetLogiciel)