Existe algum equivalente do Windows ao Linux chmod
para alterar as permissões de um arquivo?
fonte
Existe algum equivalente do Windows ao Linux chmod
para alterar as permissões de um arquivo?
Greg menciona attrib
- mas attrib
não está nem perto chmod
- attrib
pode definir atributos Somente leitura / Oculto de um único arquivo - ele não fornece controles refinados como icacls
faz.
icacls
define / redefine as listas de controle de acesso, para que você possa conceder / negar direitos para SIDs e grupos individuais. É bastante complicado.
Aqui está um exemplo que eu salvei na minha lista do github ; redefine a propriedade e a lista de controle de acesso para todos os arquivos em uma pasta e é particularmente útil para corrigir aqueles 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
age recursivamente em todos os arquivos, pastas e subpastas
/q
não exibe nenhuma mensagem de sucesso
/c
continua com os arquivos restantes, mesmo que ocorra um erro.
Você também pode fazer backup de ACLs existentes e aplicá-las a todos. Dê uma olhada no ss64, que explica muito bem as diferentes opções e opções.
cmd
que você obtém pressionando [Win] + [R] não possui. Para essas necessidades especiais, tenho um atalho "Admin shell", com "Executar como administrador" (ou semelhante; estou em um sistema Windows alemão) marcado (e com uma cor de fundo vermelho escuro).Ou cacls , xcacls , ou o meu favorito icacls vai provavelmente fazer o que você precisa.
fonte
icacls
só está disponível no Vista / 7.(Infelizmente) não pode haver um equivalente exato, pois o Linux e o DOS / Windows usam atributos para propósitos diferentes e (como Chathuranga disse antes) o modelo de segurança é diferente:
H
) e "system" (S
) que não têm equivalente no Linux; lá, os arquivos são ocultados acrescentando o nome com um ponto (.
).A
atributo "archive" ( ) do Windows .x
atributos "executáveis" ( ) do Linux nos atributos de arquivo do DOS / Windows.D
) atributo (mas não pode ser alterado de qualquer maneira).O atributo de arquivo do DOS
R
(somente leitura) é aquele que pode ser considerado como tendo um equivalente: esse conjunto de atributos é aproximadamente ow
atributo de todos que estão faltando; mas a permissão para alterar esse 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 chamaattrib
ecacls
(ou sucessores), mas eu não tenho um.fonte
CAP_LINUX_IMMUTABLE
processo), enquanto o acesso aos atributos definidos no Windows é tudo ou nada. É um erro comum nas implementações dochmod
Windows usar este comando para definir o atributo de arquivo somente leitura. Infelizmente, os sistemas são tão informados quanto os programadores que os desenvolvem.chattr
comando. Mas você não quis dizer "confundir atributos e permissões de arquivos", certo? AFAICS, todas as palavras que escrevi sobre atributos do DOS ainda estão corretas.chattr
, exceto que o Windows possui um atributo de diretório, pois não há inode.chmod
no Windows porque não há nada como o atributo "mode" do arquivo. O conjunto padrão de atributos de arquivo do Windows não tem nada a ver com isso. O atributo somente leitura não é uma permissão de arquivo. Ele basicamente diz que o arquivo está escrito em pedra, portanto, todas as tentativas de modificá-lo devem falhar. O atributo de arquivo "imutável" do Linux é semelhante. O Windows usa apenas ACLs para permissões, portanto, icacls.exe e similares são os únicos comandos semelhantes no assunto de permissões.Funciona como um encanto para alterar as permissões em uma pasta para usuários do domínio. Informações adicionais sobre
cacls
eicacls
.fonte
O
attrib
comando é a correspondência mais próxima para itens muito básicos (somente leitura, sinalizadores de arquivamento). Depois, 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, os sinalizadores do tipo unix existem. Se você instalar o conjunto de ferramentas Cygwin, receberá umchmod
. (Um pouco fora de tópico, já que você está procurando o equivalente a um comando unix, fazer o download e instalar o Cgygwin pode ser algo interessante para você.)fonte
Uso o comando do Windows
takeown.exe
para alterar as permissões de arquivo para a minha identificação de usuário atual: http://technet.microsoft.com/en-us/library/cc753024.aspxfonte
Não há nada chamado chmod no windows porque o modelo de segurança do Windows é diferente do Linux. Você pode usar o
attrib
comando para alterar as propriedades dos objetos. (Mas eles são mais direcionados às propriedades globais.)fonte
Para mim, a solução alternativa é instalar o Cygwin e adicionar sua pasta bin ao caminho do sistema. Então, se você executar "chmod" na linha de comando, ele funcionará. Embora eu não tenha verificado sua correção.
fonte