Script para adicionar usuarios à um grupo no samba [RESOLVIDO]

1. Script para adicionar usuarios à um grupo no samba [RESOLVIDO]

Wesley Araujo
wesleyaraujo_o

(usa Ubuntu)

Enviado em 16/05/2012 - 20:04h

Olá,

Sou iniciante nessa área e estou fazendo um projeto no curso onde temos que fazer um script para adicionar usuários no samba do servidor. Estou com problemas na hora de adicionar o usuário criado à um grupo já existente no samba, o script está assim:


echo "Digite o grupo a qual seu usuario pertence (Diretoria ou Projetos):"
read grupo

while [ $grupo -ne Diretoria && $grupo -ne Projetos ]
do
echo "Digite um grupo valido!"
read grupo
done
if [$grupo -eq "Projetos"]
then

if [ $grupo -eq "Diretoria" ]
then
sudo usermod -aG Diretoria $nome
else

sudo usermod -aG Projetos $nome

fi
fi

Alguém poderia me apontar o erro?
A mensagem de erro que aparece é: Fim do arquivo inesperado enquanto procurava por ``' e erro de sintaxe: fim prematuro do arquivo






  


2. Re: Script para adicionar usuarios à um grupo no samba [RESOLVIDO]

3. Re: Script para adicionar usuarios à um grupo no samba [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 17/05/2012 - 10:49h

Deixe o seu código assim:


echo "Digite o grupo a qual seu usuario pertence (Diretoria ou Projetos):"
read grupo

while [ $grupo -ne Diretoria && $grupo -ne Projetos ]
do
echo "Digite um grupo valido!"
read grupo
done

if [ $grupo -eq "Diretoria" ]
then
sudo usermod -aG Diretoria $nome
else
sudo usermod -aG Projetos $nome
fi


Só não sei aonde vc declarou a variável $nome, mas acredito q vc tenha declarado em outra parte do código...




4. Re: Script para adicionar usuarios à um grupo no samba [RESOLVIDO]

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 17/05/2012 - 12:26h

Detalhe muito importante!

os operadores -ne, -eq, -lt, etc são para operações com numeros inteiros

para strings use = ou ==, exemplo:


if [ $grupo == 'Diretoria' ]; then .....

ou


if [ $grupo = 'Diretoria' ]; then .....


5. Re: Script para adicionar usuarios à um grupo no samba [RESOLVIDO]

Wesley Araujo
wesleyaraujo_o

(usa Ubuntu)

Enviado em 17/05/2012 - 20:17h

Renato, coloquei no script do jeito que voce disse, mas não resolveu... Vou postar o script inteiro:


echo "Digite o nome do usuario que deseja adicionar:"
read nome
sudo useradd $nome -s /usr/sbin/nologon
echo -n "Digite a senha do usuário: "
stty -echo
read senha
stty echo
echo

cd etc/samba
sudo smbpasswd -a $nome


echo "Digite o grupo a qual seu usuario pertence (Diretoria ou Projetos):"
read grupo

while [ $grupo -ne Diretoria && $grupo -ne Projetos ]
do
echo "Digite um grupo valido!"
read grupo
done
if [$grupo -eq "Projetos"]
then

if [ $grupo -eq "Diretoria" ]
then
sudo usermod -aG Diretoria $nome
else

sudo usermod -aG Projetos $nome

fi
fi





6. Re: Script para adicionar usuarios à um grupo no samba [RESOLVIDO]

Geraldo Albuquerque
AprendiNoLinux

(usa Ubuntu)

Enviado em 17/05/2012 - 20:19h

rai3mb escreveu:

Detalhe muito importante!

os operadores -ne, -eq, -lt, etc são para operações com numeros inteiros

para strings use = ou ==, exemplo:


if [ $grupo == 'Diretoria' ]; then .....

ou


if [ $grupo = 'Diretoria' ]; then .....


Pode parecer coisa simples, mas este detalhe que o @rai3mb teclou já me derrubou várias vezes com variáveis nulas. Com string não se brinca. Use sempre == para comparar igualdade. Nunca use apenas = .
Sempre que puder ai inicializar uma variável, garanta um valor default. Nem sempre é possível, mas tenha disciplina.



7. Re: Script para adicionar usuarios à um grupo no samba [RESOLVIDO]

Geraldo Albuquerque
AprendiNoLinux

(usa Ubuntu)

Enviado em 17/05/2012 - 20:26h

# Acho que você precisa prender no laço do read um loop para validar a entrada e só deixar sair em duas condições. Acerto ou abortar de propósito.
#Nunca me dei bem fazendo sudo diretamente dentro do script. Ele fica pedindo senha e costuma confundir o usuário.


echo "Digite o nome do usuario que deseja adicionar:"
read nome
sudo useradd $nome -s /usr/sbin/nologon
echo -n "Digite a senha do usuário: "
stty -echo
read senha
stty echo
echo

cd etc/samba #Não é boa política fazer assim. Procure criar uma variável com o endereço. Quando puder teste se existe o arquivo.
sudo smbpasswd -a $nome


echo "Digite o grupo a qual seu usuario pertence (Diretoria ou Projetos):"
read grupo

while [ $grupo -ne Diretoria && $grupo -ne Projetos ]
do
echo "Digite um grupo valido!"
read grupo
done
if [$grupo -eq "Projetos"]
then

if [ $grupo -eq "Diretoria" ]
then
sudo usermod -aG Diretoria $nome
else

sudo usermod -aG Projetos $nome

fi
fi



#Não testei o script, mas acho que as comparações no while irão dar problemas. Eu passaria para função isolando cada caso.
#Não tenho como simular a execução do script agora. Vou tentar aprender um pouco sobre o samba para colaborar.




8. Re: Script para adicionar usuarios à um grupo no samba [RESOLVIDO]

Wesley Araujo
wesleyaraujo_o

(usa Ubuntu)

Enviado em 17/05/2012 - 21:10h

Eu nao conheço muitos comandos, já q comecei a pouco tempo com isso. Sera que alguem poderia reformular esse script? Já tentei modificar de alguns modos de acordo com oq eu já aprendi, mas nao tive sucesso.


9. Re: Script para adicionar usuarios à um grupo no samba [RESOLVIDO]

Geraldo Albuquerque
AprendiNoLinux

(usa Ubuntu)

Enviado em 17/05/2012 - 21:19h

Para tentar entender e ajuda-lo, instalei o samba ;)

sudo apt-get install samba  


Estudando sobre ele aqui: http://www.vivaolinux.com.br/dica/Compartilhamento-no-Samba-com-permissao-de-grupo

Pesquisando encontrei também: http://pt.wikibooks.org/wiki/Guia_do_Linux/Avan%C3%A7ado/SAMBA/Mapeamento_de_usu%C3%A1rios/grupos_em...

Será que tem algum utilidade pra você ?

Algumas perguntas.

- O usuário precisa estar antes registrado no linux certo?
- O usuário precisa estar no grupo do Linux ?
- O usuário do samba é diferente do usuário do Linux ?

Desculpe as perguntas. Nunca usei o samba.






10. Re: Script para adicionar usuarios à um grupo no samba [RESOLVIDO]

Geraldo Albuquerque
AprendiNoLinux

(usa Ubuntu)

Enviado em 17/05/2012 - 21:22h

wesleyaraujo_o escreveu:

Eu nao conheço muitos comandos, já q comecei a pouco tempo com isso. Sera que alguem poderia reformular esse script? Já tentei modificar de alguns modos de acordo com oq eu já aprendi, mas nao tive sucesso.


Estou tentando kkkk. É que não entendo nada de samba. Se conseguir fazer na mão, vou conseguir jogar no script. Só preciso entender certinho o que você deseja.

A princípio preciso saber o lance dos usuários do Linux e Samba. Depois os grupos e saber como verificar grupos no samba. Até agora não encontrei. Estou vendo o man do samba.


"samba - A Windows SMB/CIFS fileserver for UNIX"

editado - 21:28
Estudando este tutorial: http://www.vivaolinux.com.br/artigo/Samba-PDC-com-Debian-e-Clamwin-antivirus-sincronizado-nas-estaco...

Estou imaginando que você já tem o arquivo smb.conf configurado certo ? O que você deseja é agregar informação de usuários e grupos ao smb.conf. Estou correto ?
http://www.vivaolinux.com.br/artigo/Samba-PDC-com-Debian-e-Clamwin-antivirus-sincronizado-nas-estaco...

editado - 21:35
Se puder enviar o seu arquivo smb.conf para eu tentar editar ele via script seria melhor. Até onde entendi lendo os tutoriais, o arquivo smb.conf está desconectado dos grupos e usuários do GNU/Linux. Se estiver errado, alguém me corrija por favor.
http://www.vivaolinux.com.br/artigo/Samba-PDC-com-Debian-e-Clamwin-antivirus-sincronizado-nas-estaco...

editado - 21:44
Artigo muito bom: http://www.vivaolinux.com.br/artigo/Implementando-um-servidor-de-dominio
Muito interessante: http://www.vivaolinux.com.br/artigo/Permitindo-o-uso-da-internet-usando-o-login-do-SAMBA
Porreta este artigo: http://www.vivaolinux.com.br/artigo/Samba-Implementando-um-dominio



11. Re: Script para adicionar usuarios à um grupo no samba [RESOLVIDO]

Wesley Araujo
wesleyaraujo_o

(usa Ubuntu)

Enviado em 17/05/2012 - 21:39h

- O usuário precisa estar antes registrado no linux certo?
Sim, pra adicionar um usuario no samba é preciso que seja adicionado no linux primeiro.

- O usuário precisa estar no grupo do Linux ?
Não, só preciso criar grupos no samba.

- O usuário do samba é diferente do usuário do Linux ?
É o mesmo usuário, por isso declarei $nome e usei tanto para adicionar no linux quanto no samba.

Em resumo, o script vai fazer o seguinte:
Adicionar o usuario no linux, adicionar esse mesmo usuario no samba tbm e adicionar esse usuario criado à um grupo no samba (Projetos ou Diretoria que são grupos que eu já criei no samba).

E sim, é agregar informação de usuario e grupo ao smb.conf. Porém, não vou conseguir lhe enviar o smb.conf pois estou usando VirtualBox pra usar o linux, o computador que vou rodar esse script é outro, que está no curso. Tenho que leva-lo pronto pra executar la. Voce nao poderia passar o procedimento? ou algo assim?


12. Re: Script para adicionar usuarios à um grupo no samba [RESOLVIDO]

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 17/05/2012 - 21:52h

Gente isso não funciona:

if [$grupo -eq "Projetos"]


alem de espaços entre colchetes e valores, não pode-se usar -eq para comparação de strings, deve usar um simples

==



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts