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

Equivalente ao chmod para alterar as permissões de ficheiros no Windows

Existe algum equivalente ao Windows do Linux chmod para alterar as permissões de um ficheiro?

Respostas (8)

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

Greg menções attrib - mas attrib não está perto de chmod - attrib pode definir atributos só de leitura/de ocultação de um único ficheiro - não fornece controlos de grão fino como o icacls fornece.

icacls define/restabelece as listas de controlo de acesso, pelo que pode conceder/recusa de direitos para SIDs e grupos individuais. No entanto é bastante complicado.

Aqui está um exemplo que guardei no meu github gist ; repõe a propriedade e lista de controlo de acesso para todos os ficheiros numa pasta e é particularmente útil para corrigir aqueles irritantes “Precisa de permissões de … para executar esta acção” especialmente quando move ficheiros de uma instalação anterior:

icacls * /reset /t /c /q

Reset substitui a existente com a lista por defeito.
/t actua recursivamente em todos os ficheiros, pastas e subpastas /q não exibe mensagens de sucesso /c continua com os ficheiros restantes mesmo que ocorra um erro.

Também pode fazer coisas como fazer backup das ACLs existentes e aplicá-las em todas. Dê uma olhada em ss64 que explica muito bem as diferentes opções e interruptores.

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

Ou cacls , xcacls , ou o meu favorito pessoal icacls provavelmente fará o que você precisa.

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

Não pode haver (infelizmente) um equivalente exacto, uma vez que Linux e DOS/Windows usam atributos para diferentes fins, e (como Chathuranga disse antes) o modelo de segurança é diferente:

  • Nos sistemas de ficheiros Windows, existem atributos “escondidos” (H) e “sistema” (S) que não têm um equivalente no Linux; aí, os ficheiros são escondidos ao preender o nome com um ponto (.).
  • Também não existe equivalente ao atributo “arquivo” (A) do Windows.
  • Não existe equivalente ao atributo “executável” (x) Linux nos atributos de ficheiros DOS/Windows.
  • Existe _é um equivalente ao atributo “directório” (D) do Windows (mas não pode ser alterado de qualquer forma).
  • Nos sistemas de ficheiros Linux, cada entrada é propriedade exactamente de um utilizador e exactamente de um grupo, e a leitura/escrita/execução pode ser permitida para cada um deles, e para outros. As ACLs (como as utilizadas pelo Windows) são ainda mais flexíveis, mas também mais complicadas, e a sintaxe da linha de comando é uma PITA (na minha humilde opinião, claro)

O atributo de ficheiro DOS R (read-only) é o que pode ser considerado como tendo um equivalente: este atributo set é mais ou menos como o atributo w por faltar; mas a permissão para alterar este atributo está sujeita a ACLs.

Pode ser legal ter um equivalente chmod/chown no Windows, talvez escrito em alguma linguagem de scripting, que por sua vez chama attrib e cacls (ou sucessores), mas eu não tenho um.

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

Funciona como um amuleto para alterar permissões numa pasta para utilizadores de domínios. Informação adicional sobre cacls e icacls.

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

O comando attrib é o mais próximo para coisas muito básicas (apenas leitura, bandeiras de arquivo). Depois há o comando ACL (access control list) cacls. Por último, mas não menos importante, uma vez que o Windows é realmente compatível com Posix, as bandeiras do tipo unix existem. Se você instalar o conjunto de ferramentas Cygwin, você terá um chmod. (Um pouco fora de tópico, já que você está procurando por um equivalente a um comando unix, baixar e instalar o Cgygwin pode ser algo interessante para você).

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

Eu uso o comando takeown.exe do Windows para alterar as permissões dos ficheiros para o meu actual ID de utilizador registado: http://technet.microsoft.com/en-us/library/cc753024.aspx

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

Para mim, a solução é instalar o Cygwin, e adicionar a sua pasta bin ao caminho do sistema. Depois, se você executar “chmod” na linha de comando, ele vai funcionar. Embora eu não tenha verificado a sua correcção.

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

Não há nada chamado chmod no windows porque o modelo de segurança do Windows é diferente do Linux. Pode usar o comando attrib para alterar as propriedades dos objectos. (Mas eles são mais para propriedades globais).