Eu tenho um sistema de inicialização dupla com uma instalação do Ubuntu Server e do Windows Server na mesma máquina física com várias outras unidades (um SSD e 2 HDDs). Ambos montam as mesmas unidades, no entanto, como as unidades foram originalmente criadas no Windows e não posso dar permissões 'EVERYONE' 'FULL-CONTROL' nessas unidades no Windows, quero permitir que o usuário root do meu sistema operacional Ubuntu 'FULL-CONTROL ' de todas as minhas partições NTFS (msftdata) para que eu possa criar minhas permissões desejadas separadamente para as contas do Linux.
Da mesma forma que o NT-AUTHORITY/SYSTEM sempre tem controle total sobre as unidades, mesmo que os usuários do Windows listados nas permissões NTFS não existam na máquina Windows, os dados são recuperáveis aproveitando as permissões da conta NT-AUTHORTY/SYSTEM porque de seu SID (Identificador de Segurança) universal em máquinas Windows.
Existe uma maneira de dar permissões FULL-CONTROL ao usuário root do sistema Linux para todas as minhas unidades NTFS? Criar uma conta específica no Windows, chamada root, talvez com atributos LDAP?
Lembre-se de que esses sistemas operacionais não podem ser executados simultaneamente porque estão no mesmo sistema físico e não são virtualizados de forma alguma. Eu inicializo o Windows ou inicializo o Linux na inicialização.
Obrigado :)
Você realmente não precisa fazer isso - o root no Linux sempre tem o privilégio de ignorar todas as permissões de arquivos locais e isso também se aplica ao NTFS. Isso significa que o root não precisa estar listado na ACL para modificá-lo com
setfacl
: ele sempre pode fazer isso.(Permissões e ACLs não são aplicadas pelo próprio sistema de arquivos - elas são aplicadas apenas pelo sistema operacional que está acessando-o. O sistema de arquivos é apenas uma estrutura de dados e não pode impedir ativamente que o sistema operacional o ignore sempre que conveniente. O Windows irá ignorá-los quando o chamador tiver SeBackupPrivilege, o Linux irá ignorá-los quando o chamador tiver CAP_DAC_OVERRIDE e assim por diante.
Por exemplo, por padrão, o driver do sistema de arquivos Linux NTFS-3G simplesmente não impõe as ACLs NTFS totalmente e fornece o mesmo acesso a todos os UIDs do Linux, com modos de arquivo sintéticos baseados puramente em opções de montagem. Se você está vendo ACLs NTFS sendo aplicadas no Linux, isso é algo que você habilitou!)
Dito isso,
setfacl
é definitivamente inconveniente de usar, pois destina-se a controlar POSIX ACLs e não NT ACLs, então o que você provavelmente deve fazer é dizer ao NTFS-3G como mapear cada UID do Linux para um SID do Windows :Crie um diretório nomeado
.NTFS-3G
na raiz do seu volume NTFS.Nesse diretório, crie um arquivo de texto chamado
UserMapping
(sem extensão de arquivo) com conteúdo semelhante a:Com um arquivo de mapeamento, o driver Linux NTFS-3G poderá tratar sua conta Linux como a mesma entidade que sua conta Windows, no que diz respeito às permissões de arquivo. (Os nomes das contas não precisam corresponder.)
Se você deseja conceder acesso a contas que existem apenas no Linux, ainda pode usar chown/chmod/setfacl como root – ou pode criar contas fictícias no Windows, adicionar mapeamentos para seus SIDs no arquivo e conceder acesso através do editor Windows ACL.
Somente enquanto o próprio SYSTEM estiver presente em suas ACLs. Se você remover SYSTEM da ACL de um arquivo, os processos do espaço do usuário em execução nessa conta perderão o acesso a esse arquivo, como qualquer outra conta perderia.
Bem, esse é um método possível, mas elevar um processo para SYSTEM não é algo diretamente suportado pela Microsoft e acaba precisando de várias ferramentas "mágicas". Além disso, você não pode realmente confiar nisso – se alguém removeu Administradores de uma ACL, eles podem remover SYSTEM da ACL da mesma forma.
Em vez disso, a maioria das operações de "recuperação" no Windows são baseadas em Administradores com privilégio no nível do sistema operacional para alterar a propriedade do arquivo, independentemente das ACLs (SeTakeOwnershipPrivilege), juntamente com a lógica ACL padrão que permite que os proprietários de arquivos definam novas ACLs, independentemente das ACLs existentes. O gerenciador de arquivos até se oferecerá para fazer isso por você.
Os métodos alternativos incluem a ativação do SeBackupPrivilege, outro privilégio no nível do sistema operacional que ignora completamente as verificações de permissão para operações de leitura; há um para operações de gravação também. Por padrão, todos os administradores têm esse privilégio disponível sob demanda (embora, ao contrário do root no Linux, ele não esteja ativo o tempo todo).