Equivalente de chmod para alterar permissões de arquivo no Windows

42

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

    
por nhinkle 08.02.2010 / 10:34

8 respostas

17

Greg menciona attrib - mas attrib não está nem perto de chmod - attrib pode definir os atributos Somente Leitura / Ocultos de um arquivo único - ele não fornece controles detalhados, como icacls faz.

icacls define / redefine as listas de controle de acesso, para que você possa conceder / negar direitos para SIDs individuais & grupos. É bastante complicado embora.

Aqui está um exemplo que salvei no meu githubist ; Ele redefine a propriedade e lista de controle de acesso para todos os arquivos em uma pasta e é particularmente útil para corrigir os irritantes "Você precisa de permissões de .. para executar esta ação" especialmente ao mover arquivos de uma instalação anterior:

icacls * /reset /t /c /q 

Redefinir substitui o existente pela lista padrão.
/t atua recursivamente em todos os arquivos, pastas & subpastas
/q não exibe nenhuma mensagem de sucesso
/c continua com os arquivos restantes, mesmo em um erro.

Você também pode fazer coisas como fazer o backup das ACLs e & aplique-os em todos. Dê uma olhada em ss64 , que explica as diferentes opções & muda muito bem.

    
por 02.08.2011 / 19:10
10

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

    
por 08.02.2010 / 11:41
6

(infelizmente) não pode ser um equivalente exato, já que Linux e DOS / Windows usam atributos para diferentes propósitos e (como Chathuranga disse antes) o modelo de segurança é diferente:

  • Nos sistemas de arquivos do Windows, há atributos "ocultos" ( H ) e "sistema" ( S ) que não possuem um equivalente no Linux; lá, os arquivos são ocultados ao prefixar o nome com um ponto ( . ).
  • Também não há equivalente ao atributo "archive" ( A ) do Windows.
  • Não há equivalente aos atributos Linux "executáveis" ( x ) nos atributos de arquivo do DOS / Windows.
  • Existe equivalente ao atributo "diretório" ( D ) do Windows (mas não pode ser alterado de qualquer maneira).
  • Nos sistemas de arquivos do Linux, cada entrada é de propriedade de exatamente um usuário e exatamente um grupo, e a leitura / gravação / execução pode ser permitida para cada um deles e para outros. As ACLs (como as usadas 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 do arquivo DOS R (somente leitura) é o que pode ser considerado como tendo um equivalente: este atributo set é mais ou menos como o atributo w para todos os que estão faltando; mas a permissão para alterar este atributo está sujeita às ACLs.

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

    
por 28.12.2012 / 19:04
5
icacls "C:\folder" /grant:r "Domain\Users":(OI)(CI)M /T /C

Funciona como um encanto para alterar as permissões em uma pasta para usuários do domínio. Informações adicionais sobre cacls e icacls .

por 28.12.2012 / 19:26
4

O comando attrib é a correspondência mais próxima para coisas muito básicas (somente leitura, sinalizadores de arquivo morto). Em seguida, há o comando ACL (lista de controle de acesso) cacls . Por último, mas não menos importante, como o Windows é realmente compatível com Posix, existem as flags semelhantes a unix. Se você instalar o conjunto de ferramentas Cygwin, receberá um chmod . (Um pouco fora do 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ê.)

    
por 08.02.2010 / 12:37
2

Não há nada chamado chmod nas janelas porque o modelo de segurança do Windows é diferente do Linux. Você pode usar o comando attrib para alterar as propriedades dos objetos. (Mas eles são mais para propriedades globais).

    
por 08.02.2010 / 10:37
2

Eu uso o comando takeown.exe do Windows para alterar as permissões de arquivo para o meu ID de usuário atual: link

    
por 29.07.2014 / 16:22
0

Para mim, a solução é instalar o Cygwin e adicionar sua pasta bin ao caminho do sistema. Então, se você executar "chmod" na linha de comando, funcionará. Embora eu não tenha verificado a sua exatidão.

    
por 22.12.2017 / 04:29