Pagina 1 di 1

Aggiungere autorizzazioni a una cartella

Pubblicato: 25 giugno 2020 - 16:46
di Gaetan
Ciao a tutti,
Durante l'installazione di determinati software, l'utente finale avrà bisogno delle autorizzazioni per la cartella.
Tuttavia, in un contesto in cui l'utente non è un amministratore, ciò rappresenta un problema.

La soluzione che utilizzo è la seguente:
- un pacchetto che installa un modulo PowerShell (che quindi diventa una dipendenza del software)
- uno script per modificare i permessi.

I diritti vengono assegnati a 1 cartella specifica, per gli utenti autenticati (possono essere modificati da qualsiasi altro gruppo).

Il modulo PowerShell è NTFSSecurity, disponibile qui: https://gallery.technet.microsoft.com/s ... dbb2b84e85

Il pacchetto utilizzato per installarlo contiene questo codice:

Codice: Seleziona tutto

# -*- 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)
Lo script PowerShell utilizzato è il seguente:

Codice: Seleziona tutto

#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
Nel pacchetto WAPT ti serve semplicemente:
- Per rendere il pacchetto di installazione NTFSSecurity una dipendenza,
- Posizionare un file .ps1 con il codice PowerShell in alto,
- Esegui lo script nella funzione def install() con il comando:

Codice: Seleziona tutto

run('powershell.exe -NoProfile -NonInteractive -executionpolicy bypass -File FICHIER.ps1')
Spero che questo ti sia d'aiuto.

Re: Aggiungere permessi a una cartella

Pubblicato: 25 giugno 2020 - 17:05
di nliaudat
Oppure c'è il buon vecchio metodo iCalcs:

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

Codice: Seleziona tutto

    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

Re: Aggiungere permessi a una cartella

Pubblicato: 26 giugno 2020 - 09:18
di Gaetan
Grazie per le informazioni =)
Funziona bene anche in presenza di ereditarietà?

Re: Aggiungere permessi a una cartella

Pubblicato: 26 giugno 2020 - 09:42
di nliaudat
Perfettamente:

Codice: Seleziona tutto

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

Re: Aggiungere permessi a una cartella

Pubblicato: 26 giugno 2020 - 09:53
di Gaetan
Grazie mille.
Proverò così, sarà più semplice. ;)

Re: Aggiungere permessi a una cartella

Pubblicato: 1 luglio 2020 - 10:57
di Gaetan
Per me funziona, grazie per il consiglio ;)

L'ho usato così:

Codice: Seleziona tutto

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