Para meus alunos, estou configurando um servidor Ubuntu como servidor web e servidor de arquivos Samaba.
Todos os alunos recebem uma conta local. Eu adicionei pastas ao Samba para compartilhar com os alunos. Eles estão acessando os compartilhamentos das máquinas Windows.
Tudo funciona bem, mas tenho um problema que atualmente não consigo resolver.
Um aluno só pode obter acesso ao compartilhamento se tiver feito login no servidor (não no compartilhamento) pelo menos uma vez e, em seguida, conseguir ler e escrever conforme desejado.
Caso eles não façam logon no servidor, eles não podem acoplar o compartilhamento. Eu recebo o erro:
Erro do sistema 86.
A senha de rede especificada não está correta.
Atualmente, este é o meu script para adicionar usuários
#!/bin/bash
file="/var/www/html/data/users.txt"
while IFS=: read -r f1 f2 f3
do
# display fields using f1, f2, f3 from IFS separated file
pass=$(perl -e 'print crypt($ARGV[0], "password")' $f3)
useradd -M -N -G $f2 -p $pass $f1
echo $f3 | tee - | smbpasswd -s -a $f1
[ $? -eq 0 ] && echo "User has been added to system!" || echo "Failed to add a user!"
printf 'Username: %s, Groups: %s, Password: %s %s\n' "$f1" "$f2" "$f3" crypt $f3 $pass
done <$file
echo done read $file
onde f1 é o nome de usuário f2 são os grupos (= usuários, leerlingen, sambashare) e f3 é a senha do usuário em formato de texto.
A linha smbpasswd pode ser omitida enquanto não ajuda nem um pouco. Também o grupo sambashare pode ficar de fora.
Como opto por uma automação de inscrever alunos no sistema e no Samba, não estou feliz em realizar um logon para cada aluno individualmente.
Eu tentei automatizar o procedimento de logon
echo passwd | sudo su -c "whoami| more| exit" userX
Mas isso não resultou em um log que convenceu o Samba.
realizando
sudo su userX
e logar e sair diretamente funcionou bem
Então você pode me ajudar?
Atenciosamente,
John Val