2010-02-08 09:34:14 +0000 2010-02-08 09:34:14 +0000
63
63

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?

Risposte (8)

27
27
27
2011-08-02 17:10:18 +0000

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.

13
13
13
2010-02-08 10:41:26 +0000

O cacls , xcacls , o il mio preferito icacls farà probabilmente ciò di cui avete bisogno.

10
10
10
2012-12-28 18:04:43 +0000

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:

  • Nei file system Windows, ci sono attributi “nascosti” (H) e “di sistema” (S) che non hanno un equivalente in Linux; lì, i file sono nascosti preponderando il nome con un punto (.).
  • Non c'è nemmeno un equivalente dell'attributo “archivio” (A) di Windows.
  • Non c'è un equivalente all'attributo “eseguibile” (x) di Linux negli attributi dei file DOS/Windows.
  • C'è è un equivalente all'attributo “directory” (D) di Windows (ma non può essere cambiato comunque).
  • Nei file system Linux, ogni voce è posseduta esattamente da un utente e da un gruppo, e la lettura/scrittura/esecuzione può essere permessa per ognuno di essi, e per gli altri. Le ACL (come quelle usate da Windows) sono ancora più flessibili, ma anche più complicate, e la sintassi della linea di comando è una PITA (a mio modesto parere, ovviamente)

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.

7
7
7
2012-12-28 18:26:58 +0000
icacls "C:\folder" /grant:r "Domain\Users":(OI)(CI)M /T /C

Funziona come un ciondolo per cambiare i permessi su una cartella per gli utenti del dominio. Ulteriori informazioni riguardanti cacls e icacls.

5
5
5
2010-02-08 11:37:51 +0000

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

3
3
3
2014-07-29 14:22:12 +0000

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

2
2
2
2017-12-22 03:29:44 +0000

Per me, la soluzione è installare Cygwin e aggiungere la sua cartella bin al percorso del sistema. Poi, se si esegue “chmod” nella riga di comando, funzionerà. Anche se non ho verificato la sua correttezza.

2
2
2
2010-02-08 09:37:07 +0000

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