Cada arquivo ou pasta em um volume NTFS tem um dono. Alguns ficheiros do sistema são propriedade do TrustedInstaller, alguns da conta SYSTEM, e outros do grupo “Administrators”. Se um usuário cria um arquivo ou pasta, esse usuário normalmente é o proprietário do arquivo ou pasta. O proprietário é aquele que pode atribuir permissões (Permitir ou Negar) a outros usuários para aquele objeto.
Se um usuário não é o proprietário de um arquivo ou pasta ou não tem permissões para acessar o arquivo, ele recebe o erro “acesso é negado” ao acessar o objeto. Se esse usuário for um administrador, ele pode tomar posse do objeto usando o arquivo ou a aba Propriedades da pasta – Segurança. Então ele pode atribuir a si mesmo as permissões necessárias.
Este post diz-lhe como tomar posse de um arquivo ou pasta, e atribuir permissões necessárias para ele usando a linha de comando em vez de GUI.
Windows inclui uma ferramenta de linha de comando chamada Takeown.exe, que pode ser usada a partir de um prompt de comando do administrador para mudar rapidamente a posse de um arquivo ou pasta. Aqui é como tomar posse de um arquivo ou pasta e depois atribuir permissões para uma conta usando a linha de comando.
- Tomar posse de um arquivo
- Atribuir permissões de ficheiro
- Tomando posse de uma pasta
- Mudar propriedade recursivamente:
- Atribuir permissões de pastas
- Ajuda na linha de comando:
- Métodos mais fáceis para tomar posse
- Command Script
- Adicionar o comando “Take Ownership” ao menu do botão direito do rato
- Informações Adicionais
- icacls.exe também pode alterar a propriedade de um arquivo ou pasta!
- Mudar a propriedade de um arquivo ou pasta usando icacls.exe
- Exemplos: Set #1: Alterar a propriedade de um único arquivo ou pasta
- Exemplo #2: Para alterar a propriedade de uma pasta (subpasta, e arquivos) recursivamente
- Reverte a propriedade de volta para o TrustedInstaller
- Usando o comando icacls.exe para definir o TrustedInstaller como o dono de um arquivo
- icacls /setowner acesso negado?
- Usando SetACL.exe para assumir a propriedade e atribuir permissões
- SetACL: Argumentos de linha de comando
- Exemplos: Alterar a propriedade de um único arquivo ou pasta:
- Exemplos: Mudança de propriedade recursivamente:
- Exemplos: Atribua as permissões necessárias para um arquivo ou pasta:
- Exemplos: Atribua as permissões requeridas recursivamente:
Tomar posse de um arquivo
Abrir uma janela elevada do Prompt de Comando. Use a seguinte sintaxe para tomar posse de um arquivo:
TAKEOWN /F <filename>
Substituir < nome do arquivo> pelo nome do arquivo real com o caminho completo.
O usuário atualmente logado é agora o dono do arquivo.
Para definir Administrators
agrupar o dono do ficheiro, use a opção /A
mudar em adição:
TAKEOWN /F <filename> /A
-
/A
Dá a propriedade ao grupo de Administradores em vez do utilizador actual. Se/A
não estiver especificado, a propriedade do arquivo será dada ao usuário atualmente logado. Este parâmetro não diferencia maiúsculas de minúsculas.
Se a operação foi bem sucedida, você deve ver a seguinte mensagem:
“SUCESSO”: O arquivo (ou pasta): “nome do ficheiro” agora propriedade do utilizador “Nome do computador\ Nome do utilizador”.”
>ou
SUCCESS: O ficheiro (ou pasta): “nome de ficheiro” agora propriedade do grupo de administradores.
Atribuir permissões de ficheiro
Depois, para conceder aos administradores permissões de controlo total para o ficheiro, use ICACLS. Aqui está a sintaxe:
ICACLS <filename> /grant administrators:F
Exemplo 2: Para atribuir permissões de Controle Total para o usuário atualmente logado, use este comando:
ICACLS <filename> /grant %username%:F
%username% representa o nome da conta do usuário atualmente logado. ICacls aceita esta variável diretamente.
Exemplo 3: Para atribuir permissões de Controle Total para o usuário chamado , use este comando:
ICACLS <filename> /grant John:F
Tomando posse de uma pasta
Use a seguinte sintaxe:
takeown /f <foldername>
(ou)
takeown /f <foldername> /a
-
/a
Dá posse ao grupo de Administradores ao invés do usuário atual. Se/a
não estiver especificado, a propriedade será dada ao usuário atualmente conectado. Este parâmetro não diferencia maiúsculas de minúsculas.
Verá a seguinte saída:
SUCCESS: O arquivo (ou pasta): “folder_name” agora propriedade do usuário “computername\username”
(ou)
SUCCESS: O ficheiro (ou pasta): “folder_name” agora propriedade do grupo de administradores.
Mudar propriedade recursivamente:
Para mudar a propriedade de uma pasta, suas subpastas e arquivos em cada subpasta, use esta sintaxe:
takeown /f <foldername> /r /d y
O usuário atualmente logado é agora o dono da pasta.
Para definir Administrators
agrupar o dono da pasta, suas subpastas, e arquivos recursivamente, use a opção /A
mudar em adição:
TAKEOWN /F <foldername> /a /r /d y
-
/R
recursivamente, use a opção/A
mudar em adição:TAKEOWN /F <foldername> /a /r /d y
-
/R
recursivamente: instrui a ferramenta a operar em arquivos no diretório especificado e em todos os subdiretórios. -
/D
prompt Resposta padrão usada quando o usuário atual não tem a permissão de “listar pasta” em um diretório. Isto ocorre quando se opera recursivamente (/R) em subdiretórios. Valores válidos “Y” para tomar posse ou “N” para pular.
Atribuir permissões de pastas
Então para atribuir ao grupo de Administradores Permissões de Controle Total para a pasta, use esta sintaxe:
icacls <foldername> /grant administrators:F /T
O parâmetro /T é adicionado para que a operação seja realizada através de todos os subdiretórios e arquivos dentro dessa pasta.
Ajuda na linha de comando:
Para saber as informações completas de uso para Takeown.exe e ICacls.exe, execute estes comandos a partir de uma janela de Prompt de Comando.
takeown /?
icacls /?
Métodos mais fáceis para tomar posse
Command Script
Para simplificar ainda mais o processo de tomar posse, Tim Sneath da Microsoft fornece um arquivo .CMD (Windows Command Script) que toma posse e atribui Permissões de Controle Completo aos Administradores para o diretório. Para mais informações, leia o post de Tim, intitulado Secret #11: Apagar o Undeletable.
>
Esta utiliza novamente o verbo especial runas no Windows Vista e superior, que já cobri anteriormente (REF RunAs).
via WinMatrix.com
Download takeown_context.reg e guardar no Ambiente de Trabalho. Clique com o botão direito do mouse sobre o arquivo e escolha Merge. Clique em Sim quando solicitado para confirmação. Isto adiciona um comando extendido chamado Take Ownership no menu de contexto para arquivos e diretórios. Para acessar o comando, você precisa pressionar e segurar a tecla SHIFT e depois clicar com o botão direito do mouse em um arquivo ou pasta.
(Você pode ler mais sobre o ajuste no artigo Take Ownership of File ou Folder via menu de contexto com o botão direito do mouse no Windows.)
Informações Adicionais
A seção acima cobre a maioria das coisas que você precisa. Leia abaixo se você precisar de mais dicas sobre este tópico.
icacls.exe também pode alterar a propriedade de um arquivo ou pasta!
Takeown.exe e Icacls.exe são as duas ferramentas de console embutidas no Windows, que permitem alterar a propriedade de um arquivo ou pasta e atribuir permissões de controle de acesso, respectivamente. Takeown.exe define a conta de usuário atualmente conectado como o dono de um objeto (arquivo ou pasta).
No entanto, com Takeown.exe, você não pode fazer outra conta como dono de um objeto.
Você sabia que a ferramenta icacls.exe também pode ser usada para mudar a propriedade?
Para mudar a propriedade para uma conta de terceiros (ou seja a conta que não está atualmente logada) ou grupo, você pode usar o icacls.exe com o argumento de linha de comando
/setowner
, em vez de takeown.exe.Mudar a propriedade de um arquivo ou pasta usando icacls.exe
Vimos como mudar a propriedade usando icacls.exe na última parte do artigo Take Ownership of a File or Folder Using Command-Line in Windows. Aqui estão mais alguns exemplos:
A seguir está a sintaxe da linha de comando para alterar a propriedade de um arquivo ou pasta usando icacls.exe:
icacls "file_or_folder_name" /setowner "NT Service\TrustedInstaller"
Exemplos: Set #1: Alterar a propriedade de um único arquivo ou pasta
icacls "D:\Annual Reports20\November" /setowner "John"
icacls "D:\Tax Audit\November.xlsx" /setowner "John"
icacls "D:\Tax Audit\November.xlsx" /setowner "Administrators"
Se a operação foi bem sucedida, você verá a seguinte mensagem:
processed file: file_or_folder_nameSuccessfully processed 1 files; Failed processing 0 files
Exemplo #2: Para alterar a propriedade de uma pasta (subpasta, e arquivos) recursivamente
Para alterar a propriedade de uma pasta, suas subpastas, e todos os arquivos em todas as subpastas recursivamente, use a chave (transversal)
/T
além disso:icacls "folder_name" /setowner "Administrators" /T
-
/T
indica que esta operação é realizada em todos os arquivos/diretórios correspondentes abaixo dos diretórios especificados no nome.
O comando acima define o TrustedInstaller como o dono da pasta, suas subpastas e todos os arquivos em todas as subpastas.
Reverte a propriedade de volta para o TrustedInstaller
Por vezes, para corrigir um problema, você pode precisar alterar um arquivo de dados como XML ou uma chave de registro de propriedade do TrustedInstaller. Para isso, você primeiro precisa tomar posse do arquivo, pasta ou chave de registro.
Após modificar os arquivos ou configurações, você precisa reverter a posse de volta para o TrustedInstaller, se o TrustedInstaller era o proprietário anterior ou original. Para definir a propriedade de volta ao TrustedInstaller, use estes passos:
O serviço Windows Modules Installer ou TrustedInstaller permite a instalação, modificação e remoção de atualizações do Windows e componentes opcionais. Por padrão, o TrustedInstaller também é o proprietário de muitas chaves de registro e arquivos de sistema críticos.
- Clique direito em um arquivo ou chave de registro e clique em Permissões.
- Clique Avançado para abrir a caixa de diálogo Configurações Avançadas de Segurança.
- Nome “Proprietário:”, clique em Alterar.
- Na caixa de diálogo Selecionar usuário ou grupo, digite “
NT SERVICE\TrustedInstaller
” e pressione ENTER.
- Clique Aplicar, OK.
Isso muda a propriedade do objeto (arquivo, pasta ou chave de registro) para TrustedInstaller ou Windows Modules Installer.
Usando o comando icacls.exe para definir o TrustedInstaller como o dono de um arquivo
De uma janela de Prompt de Comando do administrador, use a seguinte sintaxe de linha de comando:
icacls "path\filename" /setowner "NT Service\TrustedInstaller"
Exemplo:
icacls "C:\Windows\PolicyDefinitions\WindowsStore.admx" /setowner "NT Service\TrustedInstaller"
TrustedInstaller agora possui o arquivo WindowsStore.admx.
icacls /setowner acesso negado?
Por vezes, a linha de comando
icacls.exe /setowner
pode encontrar o seguinte erro:filename: Access is denied.Successfully processed 0 files; Failed processing 1 files
Isso pode acontecer quando encontra um link rígido NTFS. O erro geralmente aparece quando você tenta mudar a propriedade de arquivos protegidos no diretório Windows – por exemplo,
C:\Windows\Notepad.exe
. Um link rígido é a representação de um ficheiro pelo qual mais do que um caminho faz referência a um único ficheiro no mesmo volume.Por exemplo, os ficheiros Notepad.exe têm dois ficheiros com link rígido, que pode ver usando o seguinte comando:
fsutil.exe hardlink list C:\Windows\notepad.exe
Pode ver esse Notepad.O exe está ligado aos seguintes ficheiros:
C:\Windows\System32\Notepad.exeC:\Windows\WinSxS\amd64_microsoft-windows-notepad_31bf3856ad364e35_10.0.19041.488_none_4cea9379ceedab35\notepad.exe
O comando
icacls.exe /setowner
encontra o erroACCESS_DENIED
ao processar estes links rígidos.Nota que a documentação icacls.exe diz, “Esta opção não força uma mudança de propriedade; use o utilitário takeown.exe para esse fim.”
Se você encontrar erros “Access is Denied” quando definir a propriedade usando Icacls, você pode ter que confiar no Takeown.exe, SubInACL, ou no utilitário de linha de comando de terceiros SetACL.exe (veja próximo parágrafo).
Usando SetACL.exe para assumir a propriedade e atribuir permissões
SetACL.exe é uma ferramenta de linha de comando de terceiros (da HelgeKlein.com) que já cobrimos antes.
SetACL: Argumentos de linha de comando
Antes de continuar, vamos ver a sintaxe da linha de comando para alterar a propriedade e as permissões de arquivo/registro usando SetACL.
SetACL -on objectname -ot objecttype -actn action
-
-on
: Especifique o caminho para o objeto em que SetACL deve operar (por exemplo, arquivo, chave de registro, compartilhamento de rede, serviço ou impressora). -
-ot
: Especifique o tipo de objeto. Para alterar a propriedade ou permissões de um arquivo ou pasta, use o tipo de objetofile
. Para chaves de registro, use o tipo de objetoreg
-
-actn
: Especifique a ação quanto ao que o SetACL deve fazer contra o objeto especificado. Para tomar posse, defina a ação comosetowner
. Para alterar permissões, defina a ação comoace
. -
-ownr
: Especifique o Nome ou SID de um administrador (um usuário ou grupo) neste formato – por exemplo,"n:Administrators"
(Veja a documentação SetACL para a lista completa de objetos, tipos e ações suportadas.)
Para alterar a propriedade e conceder permissão de controle total, aqui estão alguns exemplos:
Exemplos: Alterar a propriedade de um único arquivo ou pasta:
setacl.exe -on c:\windows\notepad.exe -ot file -actn setowner -ownr "n:NT Service\TrustedInstaller"setacl.exe -on c:\windows\notepad.exe -ot file -actn setowner -ownr "n:Administrators"setacl.exe -on c:\windows\notepad.exe -ot file -actn setowner -ownr "n:John"setacl.exe -on "d:\test" -ot file -actn setowner -ownr "n:NT Service\TrustedInstaller"setacl.exe -on "d:\test" -ot file -actn setowner -ownr "n:Administrators"setacl.exe -on "d:\test" -ot file -actn setowner -ownr "n:John"
Exemplos: Mudança de propriedade recursivamente:
Opção 1: Para definir a propriedade de uma pasta e suas subpastas (não para arquivos) recursivamente, use um destes exemplos:
setacl.exe -on d:\test -ot file -actn setowner -ownr "n:NT Service\TrustedInstaller" -rec contsetacl.exe -on d:\test -ot file -actn setowner -ownr "n:Administrators" -rec contsetacl.exe -on d:\test -ot file -actn setowner -ownr "n:Ramesh" -rec cont
-
-rec
– a recursividade está habilitada. -
cont
– recursivamente, e somente diretórios de processo.
Opção 2: Para definir recursivamente a propriedade de arquivos em uma pasta e suas subpastas (não para pastas), use um destes exemplos:
setacl.exe -on d:\test -ot file -actn setowner -ownr "n:NT Service\TrustedInstaller" -rec objsetacl.exe -on d:\test -ot file -actn setowner -ownr "n:Administrators" -rec objsetacl.exe -on d:\test -ot file -actn setowner -ownr "n:Ramesh" -rec obj
-
-rec
– a recursividade está ativada. -
obj
– A recursividade, e processar apenas ficheiros.
>
Opção 3: Para definir a propriedade de uma pasta, das suas subpastas, e dos ficheiros recursivamente, use um destes exemplos:
setacl.exe -on d:\test -ot file -actn setowner -ownr "n:NT Service\TrustedInstaller" -rec cont_objsetacl.exe -on d:\test -ot file -actn setowner -ownr "n:Administrators" -rec cont_objsetacl.exe -on d:\test -ot file -actn setowner -ownr "n:Ramesh" -rec cont_obj
-
-rec
– a recursividade está activada. -
cont_obj
– A recursividade, e processar directórios e ficheiros.
Exemplos: Atribua as permissões necessárias para um arquivo ou pasta:
Após você ter a propriedade, você pode atribuir as permissões necessárias para um objeto. Aqui estão alguns exemplos:
Para atribuir as permissões para um único ficheiro ou pasta, use um destes exemplos:
setacl.exe -on "d:\test\sample.xlsx" -ot file -actn ace -ace "n:Administrators;p:full"setacl.exe -on "d:\test\sample.xlsx" -ot file -actn ace -ace "n:John;p:full"setacl.exe -on "d:\test" -ot file -actn ace -ace "n:Administrators;p:full"setacl.exe -on "d:\test" -ot file -actn ace -ace "n:John;p:full"
Exemplos: Atribua as permissões requeridas recursivamente:
Opção 1: Para uma pasta e subpastas (não arquivos) recursivamente, use um destes exemplos:
setacl.exe -on "d:\test" -ot file -actn ace -ace "n:Administrators;p:full" -rec contsetacl.exe -on "d:\test" -ot file -actn ace -ace "n:John;p:full" -rec cont
-
-rec
– a recursividade está habilitada. -
cont
– A recursividade, e somente diretórios de processo.
>
Opção 2: Para arquivos em uma pasta e subpastas (não pastas) recursivamente, use um destes exemplos:
setacl.exe -on "d:\test" -ot file -actn ace -ace "n:Administrators;p:full" -rec objsetacl.exe -on "d:\test" -ot file -actn ace -ace "n:John;p:full" -rec obj
-
-rec
– a recursividade está ativada. -
obj
– recursivamente, e processe somente arquivos.
>
Opção 3: Para uma pasta, suas subpastas, e os arquivos recursivamente, use um destes exemplos:
setacl.exe -on "d:\test" -ot file -actn ace -ace "n:Administrators;p:full" -rec cont_objsetacl.exe -on "d:\test" -ot file -actn ace -ace "n:John;p:full" -rec cont_obj
-
-rec
– a recursividade está ativada. -
cont_obj
– A recursividade, e os directórios e ficheiros.
Você pode verificar a documentação oficial do SetACL para saber sobre as suas capacidades completas. Entretanto, para definir a propriedade de arquivos e pastas & permissões, takeown.exe e icacls.exe seria mais do que suficiente para a maioria dos usuários.
-