Olá colega.
Seu primeiro problema, que é os usuários não poder realizar a montagem devido a falta de permissão.No sudoers você pode liberar permissão para o usuário executar o comando "sudo mount" sem senha:
echo "usuário ALL=NOPASSWD: /bin/mount" >> /etc/sudoers
echo "usuário ALL=NOPASSWD: /bin/umount" >> /etc/sudoers
Agora que a senha não é solicitada para o comando sudo mount efetuado pelo usuário, o seu uso é adequado a um script.
Isso resolveria o seu proplema de permissão para montar o compartilhamento, não?
Quanto ao segundo problema, tá meio que uma salada isso o script.
O correto é montar o compartilhamento depois do login, mas seu script roda antes do login.
Por que não usa um arquivo que é executado depois do login para fazer o mapeamento ou chamar o script que faça isso?
Um desses arquivos é o .profile que existe dentro da pasta home de todos os usuários, (/home/raidicar/.profile).
Se optar por utilizar o .profile para para chamar o script que cria o mapeamento, os passos seriam:
1 - Abrir o arquivo .profile do usuário e adicionar nele o comando
compart.sh, ou seja, quando o usuário logar no sistema, seu .profile é executado e o mesmo chamaria o script compart.sh que será criado a seguir.
2 - Agora é preciso criar o script. ( onde foi definida a vaviavel $SETOR no seu script
Como não enxerguei, vou tratar como um diretório, ok? )
#!/bin/bash
sudo mount -t smbfs //10.50.80.2/$SETOR /home/$USER/SETOR -o username=$USER,password=$PASSWD
sudo mount -t smbfs //10.50.80.2/sistemas /home/$USER/Sistemas -o username=$USER,password=$PASSWD
Bem mais simples, né, altere conforme a necessidade.
Agora é salvar o script em /usr/bin com o nome de compart.sh e dar o comando
chmod +x /usr/bin/compart.sh para torna-lo executável.
Sempre que um usuário fizer login, o .profile será executado e ele, por sua vez, irá chamar o compart.sh que efetuará o compartilhamento utilizando o sudo, e o comando mount foi liberado para ser excutado sem senha no sudoers quando usado em conjunto com o comando sudo.
Creio que isso resolve o seu problema de permissão e de montar apenas o compartilhamento do usuário que acessa o sistema.
Agora, pra mim, a solução ideal seria um script que durante a inicialização faça:
1 - Checagem e armazenamento do nome dos usuários que existem no sistema em uma variável.
2 - Verifique quais desses usuários tem um diretório com o seu nome em /home.
Se o usuário exixtir no sistema e tiver um diretório, o script fará uma pesquisa no .profile do usuário e no sudoers.
Ele irá inserir uma linha no sudoers que permita ao usuário executar sem a necessidade de digitar senha o comando
sudo mount. Irá também, inserir as linhas de comando
sudo mount -t smbfs //10... dentro do .profile do usuário para ser executado durante o login. Caso o sudoers e o .profile já estejam corretos, o script não fará nada.
É um processo relativamente simples de ser feito, abaixo segue um script que bolei agora, Ele realiza essas tarefas, você precisa apenas fazer apenas duas coisas nele:
1 - Fazer com que seja executado durante a inicialização, que é o que está fazendo acima em seu script.
2 - Alterar a parte em negrito das linhas 22 e 23 do script conforme sua necessidade, Essas são as linhas que criam o mapeamento.
echo "sudo mount -t smbfs
//10.50.80.2/setor /home/$procura1/SETOR -o username=
$procura1,password=
$PASSWD" >> /home/
$procura1/.profile
echo "sudo mount -t smbfs
//10.50.80.2/sistemas /home/$procura1/Sistemas -o username=
$procura1,password=
$PASSWD" >> /home/
$procura1/.profile
Cuidado para não alterar a variável $procura1, não mexa nela.
Segue abaixo o script:
#!/bin/bash
loop1=1
loop2=1
start=1
end=0
endloop2=`ls /home | wc -l`
endloop1=`getent passwd | cut -d \: -f1 | wc -l`
procura1=`getent passwd | cut -d \: -f1 | grep -n ^ | grep ^$loop1: | cut -d: -f2`
countloop=1
endloop1=`expr $endloop1 + $countloop`
until [ $start = $end ]; do
procura1=`getent passwd | cut -d \: -f1 | grep -n ^ | grep ^$loop1: | cut -d: -f2`
loop1=`expr $loop1 + $countloop`
procura2=`ls /home | cut -d \: -f1 | grep -n ^ | grep ^$loop2: | cut -d: -f2`
if [ $procura1 = $procura2 ]; then
procsudo1=`grep "$procura1 ALL=NOPASSWD: /bin/mount" /etc/sudoers`
procprof1=`grep "sudo mount" /home/$procura1/.profile`
if [ ${#procsudo1} -lt 2 ]; then
echo "$procura1 ALL=NOPASSWD: /bin/mount" >> /etc/sudoers
fi
if [ ${#procprof1} -lt 2 ]; then
echo "sudo mount -t smbfs //10.50.80.2/setor /home/$procura1/SETOR -o username=$procura1[/color],password=$PASSWD" >> /home/$procura1/.profile
echo "sudo mount -t smbfs //10.50.80.2/sistemas /home/$procura1/Sistemas -o username=$procura1,password=$PASSWD" >> /home/$procura1/.profile
fi
fi
if [ $loop1 = $endloop1 ] && [ $loop2 = $endloop2 ]; then
start=0
end=0
fi
if [ $loop1 = $endloop1 ]; then
loop1=1
loop2=`expr $loop2 + $countloop`
fi
done
ps: Apesar de ser um script simples de pouca complexabilidade, teste-o direito. pois eu só o testei superficialmente. Sempre faça backup dos arquivos importantes de altera-los, como o .profile e o sudoers.
Se estiver tudo certo, não deixe de inserir [RESOLVIDO] no título do tópico.