Perché ogni programma di installazione su Windows deve essere eseguito con privilegi elevati?

3

L'attuale tendenza a spedire anche le applicazioni più piccole (come semplici giochi, strumenti, ecc.) come Windows Installer (.msi) o anche con .exe che può fare praticamente qualsiasi cosa è molto fastidioso. Dopo l'installazione dell'applicazione viene eseguito come utente standard, ma è inutile se durante l'installazione può fare ciò che vuole.

Ad esempio, configurando un firewall, forse non voglio che la mia nuova applicazione lucida da 15 KB abbia accesso completo a Internet (per le connessioni in entrata :))

Le azioni personalizzate all'interno dei file di installazione di Windows Installer sono anche peggiori, dal momento che è possibile eseguire una funzione personalizzata all'interno del file DLL fornito!

Come riesci a gestirlo, basta ignorare il problema o forse avere qualche metodo sconosciuto per eseguire i pacchetti di Windows Installer? E dall'altra parte, perché sulla Terra tutti fanno gli installatori? In molti molti casi, un semplice file ZIP sarà sufficiente, almeno come opportunità per un programma di installazione standard .

    
posta Beetle 30.03.2011 - 18:44
fonte

6 risposte

6

Il motivo per cui hai bisogno di privilegi elevati ha a che fare con un'installazione per macchina. Se stavi facendo una corretta installazione per utente, non avresti bisogno di privilegi elevati. Quindi questo è un problema di educazione / apprendimento con gli sviluppatori delle piccole applicazioni e gli utenti finali, poiché tutti si aspettano di dover eseguire installazioni con privilegi elevati. Solo le installazioni che devono essere utilizzate da tutti gli utenti devono essere installate come per macchina su Windows Vista e versioni successive.

Altre informazioni per utente si trovano in Per- Installazioni utente (MSDN).

    
risposta data 31.03.2011 - 18:47
fonte
8

È il risultato di molti paradigmi e convenzioni di sistema derivanti dall'origine di Windows come ambiente a utente singolo.

Le persone creano installatori perché è così che è stato fatto per anni e la gente se lo aspetta. I programmi vanno in C: \ Programmi perché è così che è stato fatto per anni e la gente se lo aspetta. E così via.

Solo ora con una nuova attenzione e dozzine di soluzioni per la sicurezza, questa convenzione ha iniziato a diventare odiosa.

    
risposta data 30.03.2011 - 18:54
fonte
2

Potrebbero essere richiesti privilegi elevati per, ad esempio, accedere al registro, scrivere nella directory Programmi o registrare oggetti e servizi COM.

Il requisito di tali privilegi dipende dalle politiche di gruppo del sistema, dalla proprietà dell'utente e dalle autorizzazioni per varie directory e dal livello di accesso dell'utente (ad esempio, Amministratore vs. Utente limitato).

Gli installatori rendono conveniente installare programmi per utenti inesperti o semplificare le complesse attività di impostazione di DLL, oggetti COM e voci di registro necessarie.

I file MSI possono anche essere richiamati automaticamente con uno script in installazioni non presidiate, semplificando ancora una volta il processo di installazione del software.

    
risposta data 30.03.2011 - 18:54
fonte
2

Windows Installer è stato storicamente pessimo nella gestione di pacchetti destinati a essere opzionali per macchina o per utente. Fino a Vista era in gran parte possibile, purché si eseguissero le autorizzazioni necessarie per l'opzione selezionata, ma era soggetta a determinati problemi. Qualunque cosa utilizzi le cosiddette tabelle COM registrerebbe per macchina, ignorando l'impostazione di Proprietà ALLUSERS .

Quindi su Vista UAC è stato impossibile per il caso comune, perché a un pacchetto si poteva dire di elevare (per il caso per macchina), o non elevare (per il caso per utente), ma bisognava dichiarare quale era in anticipo. A meno che tu non disabiliti il Controllo dell'account utente, tuttavia, un pacchetto contrassegnato per non aver bisogno di elevazione solo raramente aveva le autorizzazioni necessarie per l'installazione per macchina.

Finalmente Windows 7 ha introdotto un nuovo paradigma per utente basato su postazioni per utente e il nuovo Proprietà MSIINSTALLPERUSER . Ciò corregge sia la registrazione della tabella COM della macchina a una registrazione per utente, sia il problema di elevazione UAC. Sarà interessante vedere quale è l'up-take di questa proprietà, in quanto può essere più difficile scrivere un'applicazione correttamente per gestire entrambi gli scenari di installazione.

    
risposta data 31.03.2011 - 16:22
fonte
1

Gli installer devono essere eseguiti con privilegi elevati poiché le directory / Programmi e / Windows richiedono i diritti di amministratore per le modifiche che devono essere apportate a loro. Questo è così che quando apri un allegato e-mail chiamato "Ti amo" e si scopre che si tratta di un cavallo di Troia, verrai avvisato se tenta di cancellare il tuo sistema operativo (o aprire una porta, o fare altre cose pericolose ).

Ovviamente non è necessario un programma di installazione e il software può essere eseguito al di fuori della directory dei file di programma. Ma considera che mentre tu, una persona che pubblica su programmatori , potresti avere problemi a manipolare file e directory per installare manualmente un'applicazione con più file, il 90% del mondo fa ha un problema nel fare tali compiti. Quindi vengono creati programmi di installazione.

    
risposta data 30.03.2011 - 20:26
fonte
1

Quando creo un programma di installazione per un'applicazione, non posso sapere come l'utente intende usarlo. Non so se vogliono installarlo per ogni utente da utilizzare, o solo per l'utente che installa. Se un'applicazione deve essere utilizzata da tutti gli utenti, deve essere installata in una posizione accessibile a tutti gli utenti e è necessario installare i collegamenti ai programmi in posizioni accessibili a tutti gli utenti. Ciò richiede privilegi elevati.

La distribuzione click-once consente l'installazione non elevata a singolo utente, quindi non tutte le installazioni richiedono un accesso privilegiato, ma in generale, devi progettare i tuoi installatori in modo che facciano appello al minimo comune denominatore, che sarà accessibile a tutti gli utenti.

    
risposta data 31.03.2011 - 18:21
fonte

Leggi altre domande sui tag