Permissões e atributos de arquivo do Windows

15

Estou um pouco confuso sobre todo o esquema de segurança de arquivos do Windows. Eu sou do background unix, então não entendo completamente a relação entre permissões de arquivo / configurações de segurança e os atributos; especificamente somente leitura, que um arquivo pode ter.

Por exemplo, se eu efetuar login como administrador na minha caixa e tiver um arquivo que permita controle total para os administradores, mas tenha o atributo somente leitura definido, isso significa que não posso gravar nesse arquivo? Existe alguma maneira além de remover o atributo somente leitura que eu possa gravar em arquivos que eu supostamente tenho controle total? Caso contrário, qual é a vantagem de ter controle total se você realmente não tem controle total?

prelic
fonte
1
Pergunta fantástica
Jim B
Atributos de arquivo do Windows são análogas às do Unix Flags arquivo
Chris S
Eu editei este para ser mais genérico, uma vez que esses princípios se aplicam a todas as versões modernas de Windows, não apenas Server 2003.
MDMarra
É realmente possível ser diferente em 2012 e até
Jim B

Respostas:

16

As permissões de arquivo determinam o acesso que você tem a um arquivo - exatamente como parece. O controle total permite criar, excluir, anexar, alterar permissões, alterar atributos etc.

Arquivos e pastas podem ter atributos adicionais, como arquivos na maioria dos sistemas de arquivos * nix. "Oculto" vem à mente como um exemplo disso em ambas as plataformas.

No Windows, alguns dos atributos adicionais incluem sistema, somente leitura, arquivamento, criptografado e compactado. Quando você tem controle total (ou modifica), pode alterar esses atributos, mas, como você descobriu, um arquivo somente leitura é somente leitura, mesmo para alguém com controle total. Embora o controle total permita alterar os atributos de um arquivo, ele não os substitui automaticamente, assim como lsnão mostra ao usuário root um arquivo oculto por padrão no * nix.

MDMarra
fonte
Não existe um arquivo NTFS "oculto" usando um atributo. Os arquivos podem ser ocultados usando fluxos. NTFS suporta quaisquer atributos necessários por qualquer aplicação utilizando o campo atributos estendido ($ EA) é por isso que você pode armazenar as permissões de arquivo UNIX em um sistema de arquivos NTFS
Jim B
6
Eu não disse que "oculto" é uma função do NTFS em qualquer lugar, mas "oculto" é certamente um atributo que você pode definir em um arquivo ou pasta. Eu realmente não tenho ideia de qual é o ponto que você está tentando fazer.
MDMarra
O que é esse atributo oculto no Unix?
Edward Thomson
Oculto foi possivelmente um péssimo exemplo, mas ilustrou meu argumento. Não existe um atributo "oculto" por si só, apenas arquivos que são prefixados com um ponto final. Os atributos de arquivo do Windows em questão são, na verdade, mais próximos de algo como sinalizadores de arquivo no unix: freebsd.org/cgi/man.cgi?query=chflags&sektion=1 .
MDMarra
4

Uma permissão é um controle de segurança. Um atributo se aplica independentemente da entidade de segurança que está tentando a operação.

Existem muito mais atributos do que o que você vê no prompt de comando. Isso inclui se o arquivo é um link, criptografado, diretório (um tipo de arquivo) e integridade (baixa, média ou alta).

Constantes de atributo de arquivo
http://msdn.microsoft.com/en-us/library/windows/desktop/gg258117%28v=vs.85%29.aspx

FILE_ATTRIBUTE_ARCHIVE 32 (0x20)

Um arquivo ou diretório que é um arquivo ou diretório de archive. Os aplicativos normalmente usam esse atributo para marcar arquivos para backup ou remoção.

FILE_ATTRIBUTE_COMPRESSED 2048 (0x800)

Um arquivo ou diretório compactado. Para um arquivo, todos os dados no arquivo são compactados. Para um diretório, a compactação é o padrão para arquivos e subdiretórios criados recentemente.

FILE_ATTRIBUTE_DEVICE 64 (0x40)

Este valor é reservado para uso do sistema.

FILE_ATTRIBUTE_DIRECTORY 16 (0x10)

O identificador que identifica um diretório.

FILE_ATTRIBUTE_ENCRYPTED 16384 (0x4000)

Um arquivo ou diretório criptografado. Para um arquivo, todos os fluxos de dados no arquivo são criptografados. Para um diretório, criptografia é o padrão para arquivos e subdiretórios criados recentemente.

FILE_ATTRIBUTE_HIDDEN2 (0x2) O arquivo ou diretório está oculto. Não está incluído em uma lista de diretórios comum.

FILE_ATTRIBUTE_INTEGRITY_STREAM 32768 (0x8000)

O diretório ou fluxo de dados do usuário é configurado com integridade (suportado apenas nos volumes ReFS). Não está incluído em uma lista de diretórios comum. A configuração de integridade persiste no arquivo se ele for renomeado. Se um arquivo for copiado, o arquivo de destino terá a integridade definida se o arquivo de origem ou o diretório de destino tiver a integridade definida.

Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Esse sinalizador não é suportado até o Windows Server 2012.

FILE_ATTRIBUTE_NORMAL 128 (0x80)

Um arquivo que não possui outros atributos definidos. Este atributo é válido apenas quando usado sozinho.

FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 8192 (0x2000)

O arquivo ou diretório não deve ser indexado pelo serviço de indexação de conteúdo.

FILE_ATTRIBUTE_NO_SCRUB_DATA 131072 (0x20000)

O fluxo de dados do usuário não deve ser lido pelo scanner de integridade de dados em segundo plano (depurador AKA). Quando definido em um diretório, ele fornece apenas herança. Esse sinalizador é suportado apenas em espaços de armazenamento e volumes ReFS. Não está incluído em uma lista de diretórios comum.

Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Esse sinalizador não é suportado até o Windows 8 e Windows Server 2012.

FILE_ATTRIBUTE_OFFLINE 4096 (0x1000)

Os dados de um arquivo não estão disponíveis imediatamente. Este atributo indica que os dados do arquivo são fisicamente movidos para o armazenamento offline. Este atributo é usado pelo Remote Storage, que é o software de gerenciamento de armazenamento hierárquico. Os aplicativos não devem alterar arbitrariamente esse atributo.

FILE_ATTRIBUTE_READONLY 1 (0x1)

Um arquivo que é somente leitura. Os aplicativos podem ler o arquivo, mas não podem gravá-lo ou excluí-lo. Este atributo não é respeitado nos diretórios. Para obter mais informações, consulte Você não pode exibir ou alterar os atributos Somente leitura ou Sistema das pastas no Windows Server 2003, no Windows XP, no Windows Vista ou no Windows 7.

FILE_ATTRIBUTE_REPARSE_POINT 1024 (0x400)

Um arquivo ou diretório que possui um ponto de nova análise associado ou um arquivo que é um link simbólico.

FILE_ATTRIBUTE_SPARSE_FILE 512 (0x200)

Um arquivo que é um arquivo esparso.

FILE_ATTRIBUTE_SYSTEM 4 (0x4)

Um arquivo ou diretório do qual o sistema operacional usa parte ou usa exclusivamente.

FILE_ATTRIBUTE_TEMPORARY 256 (0x100)

Um arquivo que está sendo usado para armazenamento temporário. Os sistemas de arquivos evitam gravar dados de volta no armazenamento em massa se houver memória cache suficiente disponível, porque geralmente um aplicativo exclui um arquivo temporário após o fechamento do identificador. Nesse cenário, o sistema pode evitar completamente a gravação dos dados. Caso contrário, os dados serão gravados após o fechamento do identificador.

FILE_ATTRIBUTE_VIRTUAL 65536 (0x10000)

Este valor é reservado para uso do sistema.

Greg Askew
fonte
Isso não responde exatamente à pergunta. Eles estavam se perguntando por que o somente leitura estava substituindo o privilégio de "controle total". Esses atributos são usados ​​nos programas.
Nathan C
1
Você também combinou atributos de estilo FAT e NTFS - não que exista mais uma grande diferença, mas há momentos em que é essencial diferenciar.
Chris S
1
@ Nathan C. Isso também responde exatamente à pergunta. Somente leitura não substitui o controle total. Como a resposta diz "Um atributo se aplica independentemente do principal de segurança que está tentando a operação". No entanto, como Chris S apontou, os atributos legados opcionais são misturados aos atributos NTFS.
Jim B
-6

Fornecerei uma resposta mais longa, mas em geral os atributos aos quais você está se referindo são configurações herdadas em um arquivo dos dias do sistema de arquivos DOS FAT. O FAT armazena esses atributos como parte das entradas de diretório do sistema de arquivos de um arquivo. O NTFS possui seu próprio conjunto de atributos que encapsulam os atributos mais antigos. Por padrão, qualquer usuário com acesso a arquivos pode modificá-los e pode ser usado para evitar substituições acidentais de dados.

As permissões são específicas do NTFS e as alterações nessas permissões podem ser controladas por usuário (para que o usuário não possa mudar de somente leitura para gravável). Especificamente, se você observar o comando attrib (que mostra as adições herdadas e os novos atributos, como integridade em versões posteriores do Windows), é possível ter acesso somente de leitura definido nas permissões, mas não apenas nos atributos. Também é interessante (se não importante) entender que, devido à abstração, é tecnicamente possível ativar os atributos herdados (armazenados no atributo NTFS $ standard_information) sem que eles sejam necessariamente exibidos na GUI normal.

Especificamente, as permissões de controle total permitem alterar as permissões de NTFS. Definir o atributo somente leitura impede alterações até que seja removido.

Os atributos FAT terão precedência sobre os atributos NTFS no Windows.

Jim B
fonte
3
in general attributes are legacy settings- Você tem uma fonte para isso, porque acredito que essa afirmação está incorreta. Eles são complementares às permissões do sistema de arquivos - eles não foram substituídos ou substituídos por eles. Não há nada nas permissões padrão que substitua a funcionalidade oculta, arquivamento ou sistema.
MDMarra
1
Any user can modify them and can be used to prevent accidental overwrites of data.Além disso, isso é factualmente incorreto. Somente usuários com "atributo de gravação" em um arquivo ou diretório podem alterar os atributos nesse objeto.
MDMarra
1
i.stack.imgur.com/2fhEr.png para esclarecimentos.
Nathan C
2
Jim, por favor, dedique um minuto para analisar isso desde o início. Você foi tão longe nessa toca de coelho de "atributo NTFS" que esqueceu que é o único a falar sobre atributos NTFS. O OP claramente está falando sobre atributos de arquivo global como "Oculto" e "Somente Leitura". Ele menciona explicitamente "Somente leitura" na pergunta. Não sei dizer se você está tentando ser pedante e falhar ou se está legitimamente esquecido deste ponto. Sim, sabemos que os atributos NTFS (estendidos) não são iguais aos atributos globais de arquivo / pasta (estilo FAT). Ninguém está reivindicando isso.
MDMarra
3
Eu acho que você claramente perdeu o espírito e a intenção desta pergunta e está tentando adotar uma postura que é uma parte incorreta e uma parte inútil. Você mostrou claramente que tem uma noção de como os atributos NTFS funcionam, no entanto, ninguém estava perguntando sobre eles e ninguém os usou em uma resposta em primeiro lugar. Se você estava tentando mostrar seu conhecimento dos atributos NTFS, você se saiu bem. O problema é que você perdeu completamente o objetivo da pergunta.
MDMarra