Um pouco atrasado para a festa, mas no caso de futuros leitores tropeçarem nisso;) Como afirmado por outros, em um sistema de arquivos OS-X padrão, o setUID para diretórios é ignorado - e não parece haver uma maneira fácil de contornar isso ( mount -o
.... ou o que não). Como tantas vezes, a página de manual na verdade não está em conformidade com o comportamento do OS-X, literalmente:
4000 (o bit set-user-ID-on-Execution) [...] Diretórios com o set-user-id bit definido forçarão todos os arquivos e subdiretórios criados neles a pertencer ao proprietário do diretório e não a o uid do processo de criação [...]
mas também lista a possibilidade de obter o mesmo efeito sem abrir mão da propriedade original. O Linux usa '[g /] setfacls' para efeitos semelhantes (são permissões que não são realmente visíveis à primeira vista, portanto, às vezes, pode ser um incômodo).
Quanto ao 'como posso obter efeitos semelhantes', leia a página de manual inteira e brinque com:
chmod +a 'guest allow read,write,delete,add_file,add_subdirectory,file_inherit,directory_inherit' ./[DIRECTORY]
você pode verificar via
ls -le
se tudo parece bem. Outras opções incluem inserir regras em posições específicas, remover ou substituir regras específicas. As duas opções dignas de nota aqui são " file_inherit
e directory_inherit
" permitindo que as regras sejam anexadas a um novo diretório / arquivo.
Eu não gosto muito de usar o setUID, mas o setGID é muito útil em servidores de arquivos, onde simplesmente definir o grupo 'principal' não funciona ou os clientes têm máscaras de arquivos que não permitem a gravação em grupo. Isso seria resolvido por:
chmod +a 'mygroup allow read,write,delete,add_file,add_subdirectory,file_inherit,directory_inherit' /fileserver/groupfolders/mygroup