Use a opção automount + multiuser de mount.cifs
Você pode conseguir isso usando o automount e a opção multiusuário para mount.cifs. Instale os pacotes necessários:
sudo apt install autofs keyutils cifs-utils
O exemplo a seguir supõe que o servidor cifs exporte um compartilhamento que é nomeado após o usuário que está acessando-o. Normalmente, isso seria adequado para diretórios pessoais.
Adicione isso ao seu /etc/auto.master
:
/cifs /etc/auto.cifs
Em /etc/auto.cifs
coloque isso:
* -fstype=cifs,multiuser,cruid=${UID},sec=krb5 ://server.domain/&
Certifique-se de substituir server.domain pelo seu servidor de arquivos. Você também pode usar um compartilhamento fixo dessa maneira. Basta substituir o *
por um nome fixo e também o &
.
Um detalhe importante na configuração acima é o cruid=${UID}
. Isso fará com que o kernel procure um ticket do kerberos no contexto do usuário que está acessando o compartilhamento. Caso contrário, estaria tentando cache de tickets de raízes.
Finalmente, recarregue o automount:
sudo service autofs reload
Se você tiver um tíquete do kerberos, ele montará o sistema de arquivos /cifs/$USER
no primeiro acesso. Isso significa que você precisa digitar explicitamente e. g. cd /cifs/myuser
ou uma ação semelhante em um navegador de arquivos GUI. Para evitar isso, você poderia colocar links simbólicos apontando para isso de outro lugar e dizer aos usuários para acessá-los.
Se você estiver usando um compartilhamento fixo (não usando *
e &
), é claro que você teria que digitar cd /cifs/sharename
.
O acesso subsequente de outros usuários ao mesmo compartilhamento estará usando as permissões deles , possibilitados pela opção multiuser
. Nenhuma montagem adicional será feita, mas a existente será reutilizada.
De mount.cifs (8) :
multiuser Map user accesses to individual credentials when accessing the server. By default, CIFS mounts only use a single set of user credentials (the mount credentials) when accessing a share. With this option, the client instead creates a new session with the server using the user's credentials whenever a new user accesses the mount. Further accesses by that user will also use those credentials. Because the kernel cannot prompt for passwords, multiuser mounts are limited to mounts using sec= options that don't require passwords.
Também é possível adicionar os mapas automount necessários a um servidor LDAP para gerenciamento central, mas isso provavelmente está além do escopo desta resposta.
Na sua pergunta, você pediu que a montagem fosse montada como root na inicialização. Tecnicamente isso é feito aqui na forma de uma montagem de suporte de lugar para autofs. Praticamente a montagem real é feita apenas no primeiro acesso por um usuário.
Estamos usando essa configuração para ~ 100 clientes no meu local de trabalho para acessar um grande sistema de arquivos Lustres e funciona de forma confiável.