Aggiungere autorizzazioni a una cartella

Domande sul packaging WAPT / Richieste e assistenza sui pacchetti Wapt.
Regole del forum
Regole del forum della community
* Supporto in inglese su www.reddit.com/r/wapt
* Supporto della community in francese disponibile su questo forum
* Si prega di anteporre [RISOLTO] al titolo dell'argomento se è stato risolto.
* Si prega di non modificare un argomento contrassegnato con [RISOLTO]. Aprire un nuovo argomento facendo riferimento a quello precedente.
* Specificare la versione di WAPT installata, la versione completa e il numero di build (2.2.1.11957 / 2.2.2.12337 / ecc.) nonché l'edizione Enterprise/Discovery.
* Le versioni 1.8.2 e precedenti non sono più supportate. Le uniche domande accettate relative alla versione 1.8.2 riguardano l'aggiornamento a una versione supportata (2.1, 2.2, ecc.).
* Specificare il sistema operativo del server (Linux/Windows) e la versione (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Specificare il sistema operativo della macchina di amministrazione/creazione dei pacchetti e della macchina con l'agente problematico, se applicabile (Windows 7/10/11/Debian 11/ecc.).
* Evitare di porre più domande quando si apre una discussione, altrimenti potrebbe essere ignorata. Se ci sono più discussioni, aprirle separatamente, preferibilmente una dopo l'altra e non tutte contemporaneamente (ovvero, non intasare il forum).
* Includere frammenti di codice, screenshot e altre immagini direttamente nel post. I link a Pastebin, Bitly e altri siti di terze parti verranno sistematicamente rimossi.
* Come in qualsiasi forum della community, il supporto è fornito volontariamente dai membri. Se si necessita di supporto commerciale, è possibile contattare il reparto vendite di Tranquil IT al numero 02.40.97.57.55
Bloccato
Avatar utente
Gaetano
Messaggi: 169
Iscrizioni: 8 agosto 2019 - ore 10:16
Posizione: Tolosa

25 giugno 2020 - 16:46

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.
nliaudat
Messaggi: 29
Iscrizioni: 8 agosto 2019 - ore 8:31

25 giugno 2020 - 17:05

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
Avatar utente
Gaetano
Messaggi: 169
Iscrizioni: 8 agosto 2019 - ore 10:16
Posizione: Tolosa

26 giugno 2020 - 09:18

Grazie per le informazioni =)
Funziona bene anche in presenza di ereditarietà?
nliaudat
Messaggi: 29
Iscrizioni: 8 agosto 2019 - ore 8:31

26 giugno 2020 - 09:42

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
Avatar utente
Gaetano
Messaggi: 169
Iscrizioni: 8 agosto 2019 - ore 10:16
Posizione: Tolosa

26 giugno 2020 - 09:53

Grazie mille.
Proverò così, sarà più semplice. ;)
Avatar utente
Gaetano
Messaggi: 169
Iscrizioni: 8 agosto 2019 - ore 10:16
Posizione: Tolosa

1 luglio 2020 - 10:57

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)
Bloccato