Para algumas tarefas temporárias de migração de dados, preciso configurar um servidor NFS. Os UIDs em ambas as máquinas não correspondem, então, de alguma forma, preciso evitar problemas de permissão.
Por sorte, pensei, há uma opção all_squash
. Diz:
all_squash: Map all uids and gids to the anonymous user. Useful for NFS-exported public FTP directories, news spool directories, etc. The opposite option is no_all_squash, which is the default setting.
Para mapear para o meu usuário e grupo desejados, eu especifiquei adicionalmente anonuid=12345
e anongid=15101982
:
anonuid and anongid: These options explicitly set the uid and gid of the anonymous account. This option is primarily useful for PC/NFS clients, where you might want all requests appear to be from one user. As an example, consider the export entry for /home/joe in the example section below, which maps all requests to uid 150 (which is supposedly that of user joe).
Crie um arquivo em um cliente conectado ao compartilhamento NFS e, como esperado, vejo o seguinte comportamento (uid / gid foi alterado para 12345
):
$ touch test && ls -l test
-rw-rw-r-- 1 12345 12345 0 Aug 25 18:10 test
No entanto, os arquivos que já existem no compartilhamento ainda têm seu uid e gid original:
$ ls -l existing-file
-rw-rw-r-- 1 98765 98765 0 Aug 25 18:11 existing-file
Eu não estou entendendo as coisas corretamente? Eu tinha assumido que all_squash
simplesmente esmagaria todos os arquivos uids e gids? Se esse não for o caso, isso pode ser conseguido?