Amusingly it isn't using rename() in this case, because the move crosses filesystems. Nautilus is just providing consistent semantics in this case by re-applying permissions form the source file :trollface:.
Eu gostaria que esse fosse o único problema. Mas eu recebo as mesmas permissões efetivas quando copiando também. É verdade que a ACL padrão é aplicada, se eu verificar com getfacl
. No entanto, ele também mostra uma "máscara" e que a ACL padrão aplicada é efetivamente desativada pela máscara.
Para até mesmo fazer o copiar funcionar ... você não precisa necessariamente de uma ACL padrão; historicamente, você confiaria no padrão Grupos privados de usuários , com o diretório compartilhado sendo marcado set-GID.
Infelizmente, o GNOME moderno não foi desenvolvido para sistemas multiusuários e há dois problemas que o quebraram.
-
udisks usa a antiga máscara unix 0022 ao montar sistemas de arquivos FAT, como o cartão SD de uma câmera, em nome dos usuários .
- bug systemd (ou "RFE" lol): Permitir a seleção de "systemd --user" umask .
Por exemplo, quando você usa cp para copiar uma imagem do cartão SD, o cp copia o modo original, limitado pela umask atual. Por isso, é afetado por ambos os problemas. (Pode ser afetado pelo primeiro problema porque você executou cp
dentro do serviço systemd --user
conhecido como gnome-terminal-server.service
).
(Outro aspecto dessa situação é que o Debian implementou o UPG desde o início, mas quebrou o umask quando implementou o PAM. Embora esse problema seja muito mais simples de se trabalhar usando a configuração do PAM, talvez ilustre uma falta de demanda, e talvez tenha contribuído para a falta de consciência sobre a UPG).
O problema 2 quebra o uso tradicional do UPG, que depende de um umask
de 0002 e um diretório compartilhado set-GID.
No entanto, quando você usa uma ACL padrão no diretório compartilhado, o umask
é efetivamente sobreposto, e o problema 1 é o "único" problema.