Denis wrote:
Galera, montei um script para criar usuarios, ja setando algumas
opçoes de cota e pastas.
o problema é na hora que passo a variavel do nome do cabra para o useradd
ele fala too arguments.
isso pq eu não consigo fazer uma maneira do script colocar as aspas
onde quero
Este é o pedaço onde está o bendito useradd:
testa_resp ()
{
echo "Criando login para aluno..."
sleep 1
echo -n "Informe o login do professor ao qual o aluno sera
vinculado: "
read responsavel
testa_resp=`cat /etc/group |cut -d ":" -f 1 |grep $responsavel`
if [ "$responsavel" = "$testa_resp" ];
then
/usr/sbin/useradd $username -s /bin/bash -m -d
/home/$responsavel/$username -c "$nome" -g $responsavel
/bin/mkdir /data/$responsavel/$username
/bin/chown $username.$responsavel
/data/$responsavel/$username
else
echo "Professor Invalido"
sleep 1
testa_resp
fi
}
Já tenteni informar o nome "teste da silva"
ou ler a variavel
"$nome" ;
" ' " $nome " ' " ;
" " $nome " " ;
' " $nome " ' ;
e diversas combinações.
Ou eu recebo erro por excesso de argumentos do useradd ou consigo
colocar o usuário junto com as aspas para dentro do passwd.
Alguem sabe como tenho que fazer para que ele interprete o comando assim:
/usr/sbin/useradd $username -s /bin/bash -m -d
/home/$responsavel/$username -c "$nome" -g $responsavel
/usr/sbin/useradd user_teste -s /bin/bash -m -d
/home/resp_teste/user_teste -c "user teste" -g resp_teste
valeu.
Olhando só a função fica mais difícil, mas acho que é porque você chama
o useradd com muitos nomes de alunos. Quantos nomes tem em '$username'?
Nao dá pra fazer isso dentro de um loop, tipo
for arg in $alunos ; do
useradd $alunos etc etc
done
?
Outra coisa: pra que a linha testa_resp, logo antes do 'fi'? Se você tá
chamando a função testa_resp, tem que ser fora da funcao, se quer zerar
a variável, tem que chamar 'testa_resp='. Sugiro trocar o nome de uma
das duas, pra não ficar ambiguo.
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]