Introduzione
Per chi sta sviluppando o pubblicando i propri siti Joomla! da un ambiente Windows, a volte è difficile ottenere informazioni rilevanti riguardo ai permessi. Sfortunatamente, la maggior parte degli hosting web viene offerta su Unix, ed è un sistema ben documentato in questo ambito. Si spera che le seguenti informazioni possano chiarire alcuni dubbi e fornire anche una piccola guida.
Panoramica dei server web Windows
Innanzitutto, parliamo delle differenze tra i server. In generale, la maggior parte degli utenti Windows sembra utilizzare Apache(Win32) oppure Microsoft IIS. Questi due server web funzionano in modo molto diverso e utilizzano modelli di distribuzione leggermente differenti. Apache(Win32) generalmente viene eseguito sul computer host come l'Utente sotto il quale è stato installato, mentre IIS viene installato con un utente specifico ma verrà eseguito con un nuovo utente creato appositamente IUSR_.
Permessi predefiniti
Per impostazione predefinita, Unix tende ad assegnare l'accesso completo solo all'utente proprietario dei file e delle directory; al contrario, Windows per impostazione predefinita assegna anche al Gruppo Everyone i permessi completi. La prima cosa che un buon amministratore Windows farà è rimuovere i diritti del gruppo Everyone, per migliorare la sicurezza. Per i test in locale, questo probabilmente non è necessario, ma spiega perché, se Everyone non viene rimosso ed esegui una qualche forma di script di verifica dei permessi o il controllo di pre-installazione di Joomla!, nella maggior parte dei casi otterrai i permessi completi di Lettura, Scrittura ed Esecuzione, perché stai acquisendo i diritti del gruppo Everyone.
Microsoft Internet Information Server (IIS)
IIS esiste in due versioni principali, PWS (Personal WebServer) e IIS (Internet Information Server). In sostanza si tratta della stessa applicazione. PWS è solo una versione ridotta di IIS pensata per ambienti desktop, mentre IIS è progettato per ambienti server. PWS limita l'uso a un unico sito web principale, quindi le installazioni delle applicazioni saranno generalmente in sottodirectory del sito principale. IIS, invece, offre la funzionalità degli Host Virtuali eseguiti da queste directory, fornendo capacità multi-sito.
A causa delle diverse limitazioni funzionali, PWS non dispone della Procedura guidata permessi, poiché non è ritenuta necessaria. Un solo utente utilizzerà il server PWS. In IIS, invece, molti utenti utilizzeranno il server, quindi sono necessarie diverse assegnazioni di permessi.
Una volta rimosso l'account Everyone, in Windows IIS rimane l'account IUSR_ con diritti di livello massimo sulle directory del server web. Un controllo dei permessi ora dovrebbe produrre risultati diversi. Solo l'account IUSR_ ha permessi completi e gli altri utenti dovrebbero avere solo Sola lettura o nessun diritto. I diritti vengono determinati in base a quali altri utenti sono stati assegnati manualmente a quali diritti sulle directory IIS.
Assegnazione dei permessi
Assegnare i permessi in Windows è relativamente semplice, ma a volte può risultare un po' confuso. Fai clic con il tasto destro sulla cartella o sul file appropriato. Selezionando Proprietà oppure Condivisione e sicurezza si accede al pannello di Gestione sicurezza di Windows. Selezionando (con un clic singolo) il nome di un utente elencato, verranno mostrati nella metà inferiore del pannello i diritti che tale utente possiede. Alcuni diritti potrebbero apparire disattivati.Questi non sono disponibili, sia perché l'utente attuale (con cui hai effettuato l'accesso) non ha permessi sufficientemente elevati per modificarli, sia perché sono ereditati dalla directory superiore e sono stati impostati per utilizzare i permessi di quella directory di livello superiore (questo è generalmente il meccanismo predefinito).
Come puoi vedere, Windows utilizza il seguente schema di Permessi/Diritti:
| # | Permessi | Diritti |
|---|---|---|
| 1 | Controllo completo | Consente: 1, 2, 3, 4, 5, 6, 7 |
| 2 | Modifica | Consente: 2, 3, 4, 5, 6 |
| 3 | Lettura ed esecuzione | Consente: 3, 4 |
| 4 | Visualizzazione contenuto cartella | Consente: 4 (ma non può eseguire programmi) |
| 5 | Lettura | Consente: 5 (Implica: 4) |
| 6 | Scrittura | Consente: 6 (Implica: 4) |
| 7 | Permessi speciali | Consente: Combinazioni |
Proprietà dei permessi dei file Windows
I permessi dei file Windows possono essere visti come aventi proprietà simili a quelli dei file UNIX o Linux (Modalità), semplicemente rappresentati in modo diverso. Ad esempio, se sei principalmente un utente Unix/Linux, probabilmente sei abituato ad avere i permessi rappresentati come 644/666 755/777, invece che descritti nei termini sopra indicati. Quindi, quando ti viene indicato di usare 644, ciò equivale a:
- Il proprietario di questo file può leggerlo e scriverci.
- Il gruppo del proprietario può leggere il file.
- Chiunque altro può leggere il file.
Nota: i permessi Windows e Unix (Liste di controllo accessi) non equivalgono esattamente, poiché Windows non utilizza il meccanismo dei Gruppi nello stesso modo. Tuttavia, per questa discussione e per quanto riguarda l'ambiente di Web-Hosting, possono essere sommariamente equiparati. Ah, ma in windows i Gruppi non vengono utilizzati e Everyone avrebbe dovuto essere rimosso. Questo è il punto in cui Windows e Unix non equivalgono esattamente, ma ciò che si può fare è far corrispondere o correlare i significati equivalenti.
Questa panoramica non intende fornirti una guida specifica ai permessi di Windows o NTFS, ma piuttosto una comprensione di come i permessi comunemente indicati in stile numerico UNIX/Linux si correlano su una macchina con un file system NTFS. I file posizionati nella cartella radice di www.domain.com.au, o in qualsiasi directory a cui punti il tuo sito (www.domain.com.au o localhost) sul tuo disco rigido, dovrebbero essere di proprietà del tuo account utente, ma solo se tale utente non è considerato un utente privilegiato come Amministratore su Windows o Root su UNIX/Linux. Questi account consentono un accesso eccessivo e non dovrebbero mai essere utilizzati per l'uso quotidiano.
Best practice
Le pratiche di sicurezza comunemente utilizzate suggeriscono che tutti i File dovrebbero avere i seguenti permessi.
- Proprietario: Lettura e scrittura
- Gruppo: Sola lettura
- Altri: Sola lettura
Tutte le directory/cartelle dovrebbero avere i seguenti permessi:
- Proprietario: Lettura, scrittura ed esecuzione
- Gruppo: Lettura ed esecuzione
- Altri: Lettura ed esecuzione
Probabilmente questa non è necessariamente la sicurezza ottimale, ma è necessario trovare un equilibrio tra sicurezza, funzionalità e manutenibilità. Windows, a differenza di Unix, non mantiene un singolo ACL per Esecuzione, ma fornisce semplicemente Lettura ed esecuzione combinate, che non implicano Scrittura. L'ACL Lettura ed esecuzione implica tuttavia Visualizzazione contenuto cartella. Pertanto, se si dispone solo dei permessi Lettura e scrittura su una directory ma non di Esecuzione, non si sarà in grado di vedere il contenuto della directory e si potrebbero anche riscontrare problemi quando si tenta di eseguire il file tramite un browser web. È necessaria una certa comprensione dei permessi UNIX/Linux per equiparare/correlare completamente i permessi di Windows. La tabella seguente dovrebbe essere d'aiuto;
| Modalità Unix | ACL Windows | Commenti |
|---|---|---|
| 7 | Modifica | Lettura, scrittura ed esecuzione, dovresti essere il proprietario di questo file |
| 6 | Lettura e scrittura | |
| 5 | Lettura ed esecuzione | utilizzato per la maggior parte delle applicazioni |
| 4 | Sola lettura | la sicurezza tramite l'oscurità non è una buona pratica |
| 3 | Scrittura ed esecuzione | non disponibile tramite Windows, a meno che non vengano utilizzati i permessi "speciali", non comunemente usato |
| 2 | Solo scrittura | non disponibile tramite Windows, a meno che non vengano utilizzati i permessi "speciali", non comunemente usato |
| 1 | Solo esecuzione | non disponibile tramite Windows, a meno che non vengano utilizzati i permessi "speciali", non comunemente usato |
In confronto alle modalità Unix, quando si vede qualcosa come 644, lo si dividerebbe in tre elementi:
6 : 4 : 4
Il primo numero rappresenta i permessi del Proprietario*, il secondo rappresenta i permessi del Gruppo e il terzo, i permessi degli Altri. L'equivalente Windows sarebbe;
* Proprietario (6) : Lettura e scrittura
- Gruppo (4) : Sola lettura
- Altri (4) : Sola lettura
Si spera che questo esempio fornisca qualche indicazione su come correlare le modalità/permessi Unix con i permessi/ACL di Windows. Questo documento non include argomenti più complessi come i permessi Effettivi, Ereditati o Speciali. Nonostante la facilità d'uso di Windows, i meccanismi di permessi e ACL di Microsoft sono in realtà ragionevolmente complessi e molto estesi, ma questo potrebbe fornire un rapido riferimento per cercare di alleviare parte della confusione che circonda le traduzioni dei permessi Unix e Windows.