Subsystem for UNIX-based Applications (SUA) offre un sottosistema compatibile POSIX (Portable Operating System Interface) che esegue shell, utilità e applicazioni UNIX in modo nativo, oltre alle applicazioni Microsoft® Windows®. In questo argomento vengono fornite alcune considerazioni operative per gli utenti che necessitano di un sistema operativo compatibile POSIX.
Compatibilità di shell POSIX
La Korn Shell SUA segue il comportamento tradizionale delle Korn Shell, che a grandi linee coincide con il comportamento POSIX. Se è necessaria una rigida conformità POSIX, richiesta da alcuni ambienti di lavoro, vedere le differenze tra la Korn Shell e POSIX nella documentazione relativa a ksh(1) nei file della Guida forniti con il pacchetto di download Utilities and Software Development Kit (SDK) for Subsystem for UNIX-based Applications.
Per ottenere la piena conformità POSIX.2 dalla Korn Shell, è necessario eseguire la Korn Shell in modalità POSIX. Per eseguire la Korn Shell in modalità POSIX, eseguire una delle operazioni seguenti:
-
Aprire la Korn Shell con l'opzione -o posix.
-
Eseguire il set di comandi -o posix dall'interno della shell.
-
Impostare il parametro della shell POSIXLY_CORRECT.
La conformità POSIX non è supportata nella shell C. A differenza della Korn Shell, la shell C non contiene opzioni di comando in modalità POSIX.
Controllo incrociato delle autorizzazioni per le directory
Per impostazione predefinita, gli utenti di Windows sono autorizzati a spostarsi all'interno di un albero di directory, anche se potrebbero non essere autorizzati ad accedere a tutte le directory nel percorso. Nei sistemi POSIX l'accesso a una directory è consentito solo se si dispone delle autorizzazioni necessarie per accedere a tutte le directory nel percorso. Questo comportamento POSIX è noto come controllo incrociato. Ad esempio, se non si è autorizzati ad accedere a una directory, non è possibile passare dalla directory corrente alle relative sottodirectory, anche se dispone dell'autorizzazione per l'accesso alle sottodirectory. Per impostazione predefinita, in Windows, è consentito passare dalla directory corrente a qualsiasi sottodirectory per cui si dispone di autorizzazioni.
Windows prevede un'autorizzazione speciale denominata Visita cartella/Esecuzione file, che è possibile impostare per un singolo utente o un gruppo. Questa autorizzazione può essere modificata in modo da consentire o negare lo spostamento in un albero di directory. L'autorizzazione Visita cartella è attiva solo se al gruppo o all'utente non è stato concesso il diritto utente Ignorare controllo incrociato nello snap-in Criteri di gruppo. In Microsoft Windows 2000, per impostazione predefinita, al gruppo Everyone viene concesso il diritto utente Ignorare controllo incrociato. Nei sistemi operativi Windows Server® 2008 R2, Windows® 7, Windows Server® 2008, Windows Vista®, Windows Server 2003 e Windows XP questo diritto è concesso ai gruppi Administrators, Backup Operators, Everyone, Power Users e Users. Per una rigida conformità agli standard POSIX, rimuovere il diritto utente Ignorare controllo incrociato da tutti gli utenti e da tutti i gruppi, eccetto il gruppo Backup Operators. Per garantire la conformità con i privilegi concessi all'utente ROOT in molte altre implementazioni UNIX, rimuovere il diritto utente Ignorare controllo incrociato da tutti gli utenti, eccetto i gruppi Administrators e Backup Operators.
Deviazione del comportamento di controllo incrociato per su e setuid
Gli utenti ROOT che utilizzano il comando su per eseguire l'accesso come altri utenti e gli utenti che utilizzano i processi setuid e i processi che comprendono chiamate relative a setuid deviano dal comportamento predefinito descritto sopra mantenendo alcuni diritti di visita delle directory.
La rimozione del diritto Ignorare controllo incrociato dagli account utente ha come conseguenza un comportamento compatibile POSIX. Quando però un utente ROOT prova a eseguire il comando su su un qualsiasi altro utente senza fornire una password, la sessione che ne risulta non ha il comportamento descritto sopra. I processi avviati dopo che l'utente ROOT ha eseguito il comando su senza fornire una password possono accedere e spostarsi all'interno di un albero di directory anche se potrebbero non essere autorizzati ad accedere a tutte le directory nel percorso.
Anche i processi Setuid e i processi che chiamano setuid, seteuid o setreuid presentano lo stesso comportamento. Dopo la rimozione del diritto Ignorare controllo incrociato dall'account utente che esegue questi processi, i processi possono spostarsi all'interno di un albero di directory anche se potrebbero non essere autorizzati ad accedere a tutte le directory nel percorso.