Geek de todos os Trades Definindo permissões a partir da linha de comando

Greg Shields

Conteúdo

Cacls muito muitos
Gerenciando permissões por hora
Permissões de previsão

Um velho amigo e fellow profissional de TI tem isso apontado dizendo localizar me repetição muito recentemente. Ela está relacionada à como você para realizar as tarefas no seu trabalho diário — e sua carreira. Ele diz com o dedo no ar, "profissionais de TI que não aprender a executar suas tarefas a partir da linha de comando não ser profissionais de TI nos próximos cinco anos."

fig01.gif

A Figura 1 uma estrutura de pasta do servidor de arquivo exemplo

Agora que é uma instrução especial, mas é um cada profissional de TI deve prestar atenção a. Independentemente se você for um jack-of-all-trades ou aprofundar profundidade em um foco específico, obtendo suas mãos que mouse e para o teclado é, indiscutivelmente, a habilidade de uma número que deve ser mestre se você estiver seja bem-sucedido nos próximos anos. Por que a linha de comando? Simplesmente colocar: eficiência, repetição e garantia.

Se você gerenciar uma tecnologia através de sua GUI, qualquer ação realizada existe efetivamente evaporates concluída uma vez. Você apenas não é possível reutilizar cliques do mouse. Por outro lado, concluir essa ação através da linha de comando — se por meio de um comando ou um script — permite que você reutilizar seu trabalho repetidamente.

Não é mais evidente do que com a configuração e gerenciamento de permissões de sistema de arquivos do Windows, uma tarefa que fazemos o tempo todo. Definimos perms em arquivos e pastas. Podemos atualizar e gerenciar nossas permissões de compartilhamento. De vez em quando, pode até mesmo atualizamos permissões de objeto no registro. Todos esses são ações que podem ser realizadas por meio do explorer ou interfaces gráficas do regedit. Mas usando essas interfaces é complicado, propenso a erros e disco rígido no seus punhos. Se você já tiver chegado a maioria da maneira como uma mudança de permissões longo, somente para que ele falha com você em algum lugar no meio com "Acesso negado", você sabe que essa dificuldade.

As modificações de permissões através da GUI são especialmente problemáticas devido ao número enorme de atores em execução. Seu ambiente pequeno pode ter milhares de pastas individuais e centenas de usuários, qualquer um dos que podem ter várias permissões atribuídas. Gerenciar o enorme número de configurações possíveis que podem resultar não é nenhuma tarefa fácil. E se você compartilhar a carga de trabalho com mais de um administrador, você poderá ter certeza que coisas alterar muito segundo você finalmente perfeita perms em uma estrutura de pastas complexa.

A forma ao redor desses problemas é confirmar-se ao gerenciamento de permissões do sistema de arquivos a partir da linha de comando. Usando sua mão desativar o mouse e investir algum esforço de familiarizar-se com algumas das ferramentas, você será recompensado com uma solução mais eficiente que é repetida infinitamente com garantia completa de sucesso.

Cacls muito muitos

A ferramenta primeira que vamos examinar é "listas de controle de acesso de alteração" ou cacls, uma ferramenta de linha de comando que tenha tido um histórico longo e proveitosa com o sistema operacional Windows. Cacls original fornecido com o Windows NT 4.0 e ativado um conjunto de recursos básicos para alterar as permissões na linha de comando mas foi limitado no que pode realizar. Para resolver essas limitações, a Microsoft lançou subseqüentemente um xcacls expandido no Windows NT Resource Kit. Posterior ainda, um xcacls.vbs sem suporte foi lançado que ficou ainda mais com capacidade, mas com versões anteriores em termos de desempenho.

A versão mais recente e completos, icacls, acompanha o Windows Vista e Windows Server 2008 e pode ser baixada para o Windows XP e Windows Server 2003 no support.Microsoft.com/kb/919240. Icacls inclui muitas das funcionalidades adicionadas encontrada no VBScript experimental mas chega como um EXE consideravelmente mais rápido. Icacls também adiciona o suporte para gerenciar níveis de integridade do Windows, uma camada secundária de controle de acesso que não abordamos neste artigo.

Vamos supor que você é responsável por gerenciar permissões em um servidor de arquivos com uma estrutura de pasta parecidos com o mostrado na Figura 1 . Existe, você verá uma pasta raiz chamada compartilhado que contém a finanças e marketing subpastas, que contém subpastas adicionais. Você também observará que as pastas são configuradas para que cada vez mais pequenos grupos de pessoas podem acessar compartilhamentos de nível inferior. Por exemplo, usuários de Finanças pode ler informações na pasta orçamento, mas somente os usuários de orçamento pode gravar nela. Uma pasta restrita também está presente na parte inferior que ninguém deve ser capaz de ver, exceto aqueles com acesso restrito. Isso é uma estrutura comum em vários servidores arquivo hoje.

Você pode usar icacls para definir permissões como aqueles na Figura 1 , mas como fazer isso não é imediatamente óbvio. Para definir as permissões indicadas para apenas a pasta de avaliação, você usaria a seguinte sintaxe:

icacls C:\Shared\Finance\Metrics /grant:r "Finance Users":(OI)(CI)M /grant:r "Metrics Users":(OI)(CI)M

Infelizmente, com excelente energia vem complexidade grande. Como você pode ver, sintaxe dos icacls pode ser bastante impenetrable, pelo menos até que você compreender como funcionam as permissões do Windows. Lembre-se de que uma permissão individual pode ser aplicada para um objeto de única pasta ou para o objeto mais suas subpastas e arquivos. Isso é o conceito de herança. Quando você aplica a permissão Modificar simples dentro do explorer GUI para uma pasta, como na Figura 2 , você está aplicando-lo, na verdade, a essa pasta, bem como todas as subpastas e arquivos.

fig02.gif

Figura 2 aplicar permissões simples automaticamente define a herança para subpastas e arquivos.

Na linha de comando acima, você pode ver que para cada grupo, M para modificação vem depois (OI)(CI), que em espera para "objeto herdar" e "herdar de contêiner" respectivamente. Ambos são necessários se desejar icacls para aplicar o simples modificar permissão. Você também notará que ": r" é adicionado após a opção /grant. Esse modificador instrui icacls para limpar qualquer permissão aplicada diretamente no objeto antes de adicionar as permissões definidas na linha de comando.

Complexa, Sim, mas as permissões do Windows são complexos. Lembre-se de que o objetivo final — comandos reutilizáveis — será realmente tornar as coisas muito mais simples.

Para continuar o exemplo, vamos percorrer todo o conjunto de linhas de comando icacls que você usaria para redefinir e aplique as permissões declaradas corretamente a estrutura de pasta Finanças, bem como sua raiz:

Icacls C:\Shared /inheritance:r /grant:r "Domain Users":(OI)(CI)R /grant:r 
   "File Admins":(OI)(CI)F

Icacls C:\Shared\Finance /inheritance:r /grant:r "Finance Users":(OI)(CI)R /grant:r 
   "File Admins":(OI)(CI)F

Icacls C:\Shared\Finance\Budget /grant:r "Budget Users":(OI)(CI)M
Icacls C:\Shared\Finance\Metrics /grant:r "Metrics Users":(OI)(CI)M

A primeira linha, na verdade, realiza duas tarefas. Ele começa com o "/ herança: r" alternar para remover completamente todas as permissões herdadas da pasta acima para que a pasta compartilhada não herda. Isso interrompe a herança da pasta compartilhada da pasta imediatamente acima dela. Feito isso, a permissão Read para é definida para usuários do domínio e a permissão Full Control para administradores de arquivos.

Como não queremos ter acesso a pasta Finance em todos os usuários do domínio, linha duas quebras e limpa a herança de permissões novamente. Ele se aplica a permissão Controle total, em seguida, para administradores de arquivo e a permissão de leitura para usuários de Finanças.

Com linhas três e quatro, não queremos quebrar a herança de permissões porque tanto a administradores de arquivos e os grupos de usuários de Finanças devem têm o mesmo acesso para essas subpastas. Essas duas linhas, nós simplesmente está concedendo outra permissão — juntamente com o existente permissões herdadas — para que o orçamento usuários e usuários de avaliação podem gravar essas pastas.

Definir permissões para a pasta de marketing é um pouco diferente. Usamos o mesmo fluxo de permissões para a pasta de produtos como nós fizemos para as subpastas em finanças, mas a pasta restrito será tratada um pouco diferente. Vamos supor que essa pasta contém documentos altamente secretos que devem ser vistos por apenas um muito poucas pessoas. Seu primeiro pensamento pode ser, "A-ha! Aqui, usarei as permissões de negação para impedir que o errado usuários acessem esta pasta!"

Mas lembre-se de que as permissões Negar é realmente muito poderosa uma configuração para a maioria das situações como ele substitui automaticamente todas as outras permissões. Portanto, adicionando a permissão Negar ao grupo usuários de marketing para esta pasta significa que qualquer restrito, os usuários que também são marketing usuários poderiam ser desligar check-out. Uma solução mais apropriada aqui é quebrar a herança novamente e simplesmente eliminar todas as permissões para o grupo de usuários marketing. Assim, são as três linhas de comando icacls requeridas para definir as permissões para essa estrutura

Icacls C:\Shared\Marketing /inheritance:r /grant:r 
  "Finance Users":(OI)(CI)R /grant:r "File Admins":(OI)(CI)F

Icacls C:\Shared\Marketing\Product /grant:r "Product Users":(OI)(CI)M

Icacls C:\Shared\Marketing\Restricted /inheritance:r /grant:r 
   "File Admins":(OI)(CI)F /grant:r "Restricted Users":(OI)(CI)M

Gerenciando permissões por hora

Portanto, leva sete linhas no prompt de comando para definir permissões nessa estrutura de pastas simples. Que parece muito trabalho para realizar relativamente pouco, mas considere seu ambiente de TI e como coisas mudam com o tempo. Quantas vezes você configurou uma estrutura de pasta, somente com alguns administrador colega inexperiente fazer alterações enquanto você estiver fora? Quantas vezes seu suporte técnico respondeu a uma chamada telefônica modificando cegamente sua estrutura de permissões exquisitely projetado no whim de um usuário? Esses são problemas comuns que são particularmente difícil se seu ambiente tiver muitas pessoas com acesso de muito. Se você usar a GUI do Windows e o mouse para manter todos os essas pastas reta, você está para longos noites rastrear as alterações.

Deixe-me oferecer uma solução bem melhor. Se você passa o tempo extra codificação antecipadamente a estrutura de permissões em uma ferramenta de linha de comando como icacls, reaplicar essa estrutura envolve duas vezes pouco mais em um lote arquivo. Depois que você tenha criado linhas como a sete acima, mantê-los ao redor para uso posterior. Você encontrará o que torna trivial para reverter a estrutura de permissões de volta ao seu estado desejado, simplesmente chamando novamente essas linhas.

Se automação interna é mais seu estilo, icacls também permite armazenar e reaplicar permissões. Uma vez que você aplicou o equivalente das sete linhas acima, execute este comando:

icacls C:\Shared /save {fileName} /T

Icacls irá analisar a estrutura de permissões para C:\Shared e criar o arquivo identificado no {fileName}. Como você pode ver na Figura 3 , o conteúdo desse arquivo estiver em um formato binário e, conseqüentemente, o arquivo não deve ser aberto em um editor de texto como bloco de notas. No entanto, você pode usar esse arquivo como está para reaplicar as permissões em um momento posterior. A sintaxe de comando para reaplicar as permissões para a mesma pasta é

fig03.gif

Figura 3 ’ Icacls salvar função cria um arquivo que pode reaplicar permissões em um depois hora.

icacls C:\Shared /restore {fileName} 

Com isso, você tem uma solução fácil de implantar para corrigir as permissões quando eles já deviated de seu design original.

Permissões de previsão

Como você viu, icacls é muito útil para configuração e gerenciamento de permissões. O que não é tão grande em está permitindo que você ver sua estrutura de permissões. Se você encontrou-se a movimentação para baixo a árvore de pastas, com o botão direito do mouse em cada pasta e escolha Propriedades para verificar o guia de segurança de cada objeto, sabe que uma dificuldade é. Icacls tem um mecanismo para exibir as permissões, mas sua ferramenta é útil não totalmente e com base em texto. Se você executar o comando

icacls C:\Shared /t

icacls listará as permissões em cada objeto na estrutura da pasta inteira; no entanto, observar screenfuls de texto voar por não é nenhuma maneira de localizar um perm interrompida.

Uma idéia muito melhor é fazer o download o livre Ferramenta do AccessEnum. O AccessEnum é um aplicativo muito simples que ajuda você a visualizar as permissões atribuídas a uma estrutura de pasta específica. Especificamente, quando você direcionar o AccessEnum para uma pasta em uma árvore de pasta de nível superior, a ferramenta verifica os arquivos e pastas abaixo e relatórios volta onde as permissões são diferentes do pai.

Esta visualização com diferença de permissões de ajuda a localizar onde permissões tiverem sido configurado incorretamente. Ele funciona devido à forma natural no que permissões são definidas em uma estrutura de pasta. Se você olhar a Figura 1 novamente, você verá bem como ler permissões normalmente fluem para baixo de nível superior. Modificar permissões são definidas em níveis específicos para baixo a estrutura, assim como os usuários alterar dos leitores para colaboradores. Modo de exibição do AccessEnum diferença baseada oferece suporte a isso, ocultando as permissões que não são alterados e expor apenas aqueles que fazer. Figura 4 mostra um exemplo de aparência de modo de exibição do AccessEnum quando aplicado a estrutura de pasta de exemplo desta coluna.

fig04.gif

Figura 4 AccessEnum ajuda com Visualizar A estrutura de permissões.

O resultado do uso icacls e AccessEnum deve ser um aplicativo mais consistente de permissões em seus servidores de arquivos. Um resultado mais será um nível maior de segurança de dados, como você vai ter certeza de que os usuários podem acessar somente os arquivos e pastas que façam sentido para eles.

Essa descrição curta apenas toca a superfície de permissões do Windows e como elas podem ser aplicadas. Por meio de ferramentas como icacls, você pode definir permissões que se aplicam a apenas uma pasta com não herança para as pastas abaixo, útil onde você deseja permitir o acesso em apenas uma única camada. Você pode definir níveis de integridade de dados que requer tratamento especial não importa quais controles discricional aplicadas a ele. Você mesmo pode procurar por arquivos e permissões em estruturas inteiras quando necessário. Portanto, suas mãos logoff que mouse e inicie arquitetar permissões a partir da linha de comando.

Greg Shields , MVP, é um parceiro em Concentrated Technology. Aproveite mais o de Greg Jack-of-all-Trades dicas e truques em www.ConcentratedTech.com.