Equivalente di chmod per modificare i permessi dei file in Windows
Esiste un equivalente di Windows di chmod
per modificare i permessi di un file?
Esiste un equivalente di Windows di chmod
per modificare i permessi di un file?
Greg menziona attrib
- ma attrib
non si avvicina a chmod
- attrib
può impostare gli attributi di sola lettura/nascosto di un singolo file - non fornisce controlli a grana fine come icacls
fa.
icacls
imposta/reimposta le liste di controllo degli accessi, in modo da poter concedere/negare i diritti per i singoli SID e gruppi. È abbastanza complicato però.
Ecco un esempio che ho salvato nel mio github gist ; resetta la lista di proprietà e di controllo d'accesso per tutti i file in una cartella ed è particolarmente utile per correggere quei fastidiosi “Hai bisogno di permessi da … per eseguire questa azione” specialmente quando si spostano i file da una precedente installazione:
icacls * /reset /t /c /q
Reset sostituisce l'esistente con la lista di default.
/t
agisce ricorsivamente su tutti i file, cartelle e sottocartelle
/q
non visualizza alcun messaggio di successo
/c
continua con i file rimanenti anche in caso di errore.
Si possono anche fare cose come il backup delle ACL esistenti e applicarle a tutti. Date un'occhiata a ss64 che spiega molto bene le diverse opzioni e gli interruttori.
Non ci (purtroppo) può essere un equivalente esatto, dato che Linux e DOS/Windows usano attributi per scopi diversi, e (come ha detto Chathuranga prima) il modello di sicurezza è diverso:
H
) e “di sistema” (S
) che non hanno un equivalente in Linux; lì, i file sono nascosti preponderando il nome con un punto (.
). A
) di Windows. x
) di Linux negli attributi dei file DOS/Windows. D
) di Windows (ma non può essere cambiato comunque). L'attributo file DOS R
(solo lettura) è quello che potrebbe essere considerato un equivalente: questo attributo set è più o meno come l'attributo w
per tutti i mancanti; ma il permesso di cambiare questo attributo è soggetto alle ACL.
Potrebbe essere bello avere un equivalente chmod
/chown
su Windows, magari scritto in qualche linguaggio di scripting, che a sua volta chiama attrib
e cacls
(o successori), ma non ne ho uno.
Il comando attrib
è il più vicino a cose molto elementari (sola lettura, bandiere di archivio). Poi c'è il comando ACL (access control list) cacls
. Ultimo ma non meno importante, dato che Windows è effettivamente conforme a Posix, i flag unix-like esistono. Se si installa il set di strumenti di Cygwin, si ottiene un chmod
. (Un po’ fuori tema, dato che state cercando l'equivalente di un comando unix, scaricare e installare Cgygwin potrebbe essere qualcosa di interessante per voi).
Uso il comando Windows takeown.exe
per modificare i permessi dei file con il mio id utente attualmente connesso: http://technet.microsoft.com/en-us/library/cc753024.aspx
Non c'è niente chiamato chmod in Windows perché il modello di sicurezza di Windows è diverso da Linux. È possibile utilizzare il comando attrib
per modificare le proprietà degli oggetti. (Ma sono più verso le proprietà globali).