Permissões do Linux em uma montagem remota

Permissões do Linux em uma montagem remota

No Windows, quando observo as permissões em uma pasta remota, as contas são qualificadas com o nome da máquina ou domínio, ou seja, a autoridade para o nome da conta.

No Linux, se eu tiver uma VM com montagem em uma unidade remota e o proprietário de uma pasta na montagem for 'root', então essa é minha raiz ou a raiz do sistema remoto?

Tudo parece simples demais no Linux para funcionar assim que uma rede está envolvida. Estou claramente sentindo falta de alguma coisa.

Lucas

Responder1

Infelizmente, esta é uma das coisas mais confusas sobre o compartilhamento de arquivos em Unixes. E sou péssimo em explicar coisas confusas.

O que vocêverna ls -lsaída (por exemplo), está o ID do usuário remoto traduzido da perspectiva do sistema local.

Quando programas como lsusam as funções padrão para procurar informações de arquivos, o driver do sistema de arquivos só pode fornecer IDs de usuário numéricos, não nomes textuais.(Até agora, não muito diferente do Windows.)Para traduzir os UIDs em nomes, lschama um componente do sistema operacional totalmente diferente, as bibliotecas de serviço de nomes, que não têm conhecimento sobre de onde esse UID foi obtido e, portanto, só podem traduzir contas que o sistema operacional conhece, mas não pode voltar e perguntar o driver do sistema de arquivos para obter ajuda.(É aqui que entra a diferença.)

Por exemplo, se o servidor tiver dois arquivos, um de propriedade do root (UID 0), o outro de propriedade de Luke (UID 1000), lssaberá apenas que eles pertencem a "0" e "1000", e procurará paralocalcontas que possuem os mesmos UIDs. “0” é sempre raiz, mas “1000” pode ou não ser Luke. Se o UID pertencer a uma conta armazenada em LDAP ou NIS ou AD, e se o sistema operacional cliente for realmenteconfiguradopara procurar contas de usuário no LDAP, ele fornecerá o nome de usuário correto. Caso contrário, pode realmente mentir, uma vez que os UIDs de contas locais (1000, 1001, ...) tendem a corresponder a pessoas diferentes em computadores diferentes.

(Existem maneiras de o driver do sistema de arquivos informar aos programas o nome completo do usuário, na forma de "atributos estendidos". Infelizmente, apesar de várias tentativas, não existe uma maneira padrão de fazer isso, e programas como lsgeralmente tentam evitar truques específicos do sistema de arquivos Ainda mais infelizmente, nem todos os protocolos de sistema de arquivos de rede.podetransferir os nomes de usuário: CIFS, também conhecido como SMB, pode, NFSv4 pode, a maioria dos outros não.)

Mas nada disso realmente importa,desde o que vocêpode fazercom o arquivo é sempre determinado pelo que o servidor sabe, não pelo que o cliente vê. Por exemplo, se você usar sshfs, ele faz login no servidor via SSH usando seu nome de usuário (por exemplo, sshfs luke@fileserver), e o servidor não permitirá que você faça nada que não deveria. O mesmo com CIFS, AFS e assim por diante.

Responder2

O proprietário é o usuário root na máquina remota. Se você quiser ter acesso a ele como root na máquina remota, você terá que montá-lo como root na máquina remota.

Em outras palavras, isso deve funcionar (usuário local sim, usuário root remoto):

aye@ayes-machine$ sshfs root@bees-machine:/path /local-path

Isso não funcionará (usuário local root, usuário remoto bee):

aye@ayes-machine$ sudo sshfs bee@bees-machine:/path /local-path

informação relacionada