Os clientes Mac que acessam um compartilhamento do Windows NTFS redefinem as permissões em níveis mais profundos de pastas. Por quê?

4

Aqui está a configuração:

  • servidor do Windows 2008
  • c:\share pasta com as seguintes permissões (leia, leia / escreva não são importantes neste momento, eu não acho):
    • User1
    • User2
  • c:\share\add_user3 pasta com as seguintes permissões:
    • User3 (adicionado explicitamente neste nível de pasta)
    • Usuário1 (herdado de c:\share )
    • User2 (herdado de c:\share )
  • Compartilhar chamado share para c:\share com permissões de leitura / gravação para os administradores locais do servidor
  • Ambiente do cliente misto:
    • clientes do Windows XP
    • Clientes do Windows 7
    • clientes Mac (OSX v10.8.4)

Comportamento do cliente do Windows (XP e Windows 7):

  • O usuário cria um arquivo c:\share\test.txt
  • As permissões efetivas nesse arquivo são herdadas da pasta:
    • User1
    • User2
  • O usuário cria um arquivo c:\share\add_user3\test.txt
  • As permissões efetivas nesse arquivo são herdadas da pasta:
    • User1
    • User2
    • User3

Comportamento do cliente Mac:

  • O usuário cria um arquivo c:\share\test.txt
  • Permissões efetivas nesse arquivo:
    • User1
    • User2
  • O usuário cria um arquivo c:\share\add_user3\test.txt OU O usuário edita um arquivo existente c:\share\add_user3\test.txt que foi criado em um cliente Windows
  • As permissões efetivas nesse arquivo se tornam:
    • User1
    • User2

É como se os clientes Mac estivessem usando as permissões NTFS no nível da pasta compartilhada ( c:\share ) e aplicando-as diretamente a c:\share\add_user3\test.txt . As permissões de c:\share\add_user3 não estão sendo honradas / herdadas.

Os usuários do cliente Mac são todos administradores locais no servidor (e, portanto, têm controle total). Isso é necessário do ponto de vista operacional, pois todos os clientes (até mesmo os usuários do Mac) precisam acessar o servidor em uma capacidade administrativa (principalmente no IIS).

Eu sou um cara do Windows principalmente, então parece que os Macs estão "errados", mas talvez seja apenas um comportamento diferente (ou seja, não há "padrão" aqui que está sendo violado). Alguma idéia porque isso está acontecendo? E, considerando que queremos que as permissões se comportem como os clientes do Windows, alguma idéia sobre como impor isso no lado do Mac?

Respostas de acompanhamento

  • Como para diferentes editores, isso foi tentado com o XCode e também com o TextEdit. O mesmo comportamento em ambos.
  • Após o teste com um usuário que não estava nos administradores locais, parece que as permissões apropriadas foram aplicadas / retidas, exceto para o seguinte comportamento:
    • Quando o usuário cria um arquivo em uma máquina Windows, o proprietário do arquivo é definido para a conta do usuário em questão
    • Quando o usuário cria um arquivo em um Mac, o proprietário do arquivo é definido como MACHINE\Administrators
por Chris Simmons 04.09.2013 / 16:36

1 resposta

3

Isso é causado por algo chamado Apple "save seguro ". Quando um Mac salva um arquivo em um compartilhamento SMB, ele realmente grava o arquivo em uma pasta oculta chamada .TemporaryItems na raiz do compartilhamento, exclui o original (se existir) e, em seguida, move o arquivo para a pasta atual. Como o arquivo salvo é novo, ele tem um novo proprietário, com permissões herdadas de .TemporaryItems .

A solução que estou usando é simples: remova as permissões de gravação para .TemporaryItems . Isso parece desativar a segurança segura.

Eu li que criando com.apple.desktopservices com o atributo "DSDontWriteNetworkStores" irá impedir que os clientes criem .TemporaryItems , mas na minha experiência, isso não funciona no OS X 10.8 e mais recente.

    
por 28.09.2013 / 00:25