Estou vendo um esboço de uma solução usando "scripts de logon" do Samba - código do lado do cliente que é executado após um login do samba - mas uma solução completa precisa concluir o esboço com detalhes. Também relacionados são "scripts preexec" - código do lado do servidor que é executado durante um login do samba.
Fazendo referência à página de manual smb.conf
logon script (G)
This parameter specifies the batch file (.bat) or NT command file (.cmd) to be downloaded and run on a machine when a user successfully logs in. The file must contain the DOS style CR/LF line endings. Using a DOS-style editor to create the file is recommended.
The script must be a relative path to the [netlogon] service. If the [netlogon] service specifies a path of /usr/local/samba/netlogon, and logon script = STARTUP.BAT, then the file that will be downloaded is:
/usr/local/samba/netlogon/STARTUP.BAT
The contents of the batch file are entirely your choice. A suggested command would be to add NET TIME \SERVER /SET /YES, to force every machine to synchronize clocks with the same time server. Another use would be to add NET USE U: \SERVER\UTILS for commonly used utilities, or
NET USE Q: \SERVER\ISO9001_QA
for example.
Note that it is particularly important not to allow write access to the [netlogon] share, or to grant users write permission on the batch files in a secure environment, as this would allow the batch files to be arbitrarily modified and security to be breached.
This option takes the standard substitutions, allowing you to have separate logon scripts for each user or machine.
e também
preexec (S)
This option specifies a command to be run whenever the service is connected to. It takes the usual substitutions.
An interesting example is to send the users a welcome message every time they log in. Maybe a message of the day? Here is an example:
preexec = csh -c 'echo \"Welcome to %S!\" | /usr/local/samba/bin/smbclient -M %m -I %I' &
No seu caso, no entanto, você realmente deseja scripts de logon (o formulário não criptografado é montado no cliente), portanto, um esboço de solução pode envolver:
- garanta que cada computador tenha um equivalente ao EncFS instalado
- escreve um script de logon (formato .bat) que chama o encfs no cliente e solicita ao usuário o logon. O comando encfs monta o formulário não criptografado localmente, com o armazenamento remoto permanecendo criptografado.
-
configure smb.conf para que os usuários relevantes executem o script de logon. por exemplo. algo como
script de logon = runencfs.bat
-
Para pontos de bônus, seu script de logon pode automatizar / solicitar a instalação do Encfs (do compartilhamento de samba) e só executar a montagem se ela estiver instalada!
No entanto, os scripts do lado do cliente podem causar dores de cabeça por causa da linguagem cmd, garantindo a instalação do encfs e contornando as falhas do Windows, como o Windows 8.1 e acima de não executar os scripts de logon até cinco minutos depois, a menos que configurado de outra forma .