useradd dentro do script [RESOLVIDO]

1. useradd dentro do script [RESOLVIDO]

Carlos Cesar
ccsar

(usa CentOS)

Enviado em 12/04/2017 - 12:50h

Pessoal
- Estou usando Centos 6.8 e estou tentando criar um script que dentre outras coisas adiciona um usuário ao sistema. Quando digito a linha do comando no terminal o suposto usuário é criado sem problemas, mas se eu coloque o mesmo comando no script dá um erro e não cria o usuário.
- O comando completo é assim:
# useradd -s /bin/bash -m -d /dados/asdf -c "Conta ASDF" -u 1005 asdf

- Esse comando direto no terminal funciona corretamente, mas dentro do script gera este erro:
' inválidonome de usuário ' asdf

- Exatamente com esta descrito acima, com aspas simples e palavras grudadas (inválido+nome). Ja coloquei também o comando com caminho completo "/usr/sbin/useradd/ -s....." e não adiantou nada.
- Tenho penado muito com comandos que funcionam no terminal, mas não funcionam em scripts.
- Alguém tem uma sugstão de como criar usuários via script?

Obrigado.
César.


  


2. Re: useradd dentro do script [RESOLVIDO]

Carlos APC
Carlos_Cunha

(usa Linux Mint)

Enviado em 12/04/2017 - 13:06h

ccsar escreveu:

Pessoal
- Estou usando Centos 6.8 e estou tentando criar um script que dentre outras coisas adiciona um usuário ao sistema. Quando digito a linha do comando no terminal o suposto usuário é criado sem problemas, mas se eu coloque o mesmo comando no script dá um erro e não cria o usuário.
- O comando completo é assim:
# useradd -s /bin/bash -m -d /dados/asdf -c "Conta ASDF" -u 1005 asdf

- Esse comando direto no terminal funciona corretamente, mas dentro do script gera este erro:
' inválidonome de usuário ' asdf

- Exatamente com esta descrito acima, com aspas simples e palavras grudadas (inválido+nome). Ja coloquei também o comando com caminho completo "/usr/sbin/useradd/ -s....." e não adiantou nada.
- Tenho penado muito com comandos que funcionam no terminal, mas não funcionam em scripts.
- Alguém tem uma sugstão de como criar usuários via script?

Obrigado.
César.


Rode seu scriipt em modo Debug

bash -x SEU-SCRIPT


E poste aqui a saida(aonde gera o erro).

Abraço
#-------------------------------------------------------------------------------------#
Administrador de Redes Mistas Linux/Windows
LPI 101-102
LPI 201
Para consultas particulares acesse:
www.cunhatec.com.br

"Falar é fácil, me mostre o código." - Linus Torvalds


3. Re: useradd dentro do script [RESOLVIDO]

Carlos Cesar
ccsar

(usa CentOS)

Enviado em 12/04/2017 - 14:38h

Refiz o scrip e o erro mudou de lugar. Isto esta me deixando maluco.
O script é este bem simples:
#!/bin/bash
# Cria conta ASDF
echo "Criando a conta ASDF"
useradd -s /bin/bash -m -d /dados/asdf -c "Conta ASDF" -u 1007 asdf
# Edita selinux
echo "Modificando selinux"
sed -i 's/SELINUX=enforcing/SELINUX=disable/g' /etc/sysconfig/selinux

- Quando modifiquei e rodei novamente, criou a conta mas não modificou o arquivo selinux:
veja abaixo o resultado do "bash -x"
___
+Cria conta ASDF
cria.sh: line 2: Cria: Comando não encontrado
+ echo 'criando conta'
criando conta
+ useradd -s /bin/bash -m -d /dados/asdf -c 'Conta ASDF' -u 1007 asdf
Criando caixa-postal: Arquivo existe
' echo 'Modificando selinux
Modificando selinux
+ sed -i s/SELINUX=enforcing/SELINUX=disable/g /etc/sysconfig/selinux

- A conta foi criada corretamente, mas agora o arquivos selinux não foi alterado.
- Estou desistindo de fazer isso, tá muito difícil de entender porque os resultados dos comando não são iguais ao do terminal....






4. Re: useradd dentro do script [RESOLVIDO]

Carlos APC
Carlos_Cunha

(usa Linux Mint)

Enviado em 14/04/2017 - 16:06h

ccsar escreveu:

Refiz o scrip e o erro mudou de lugar. Isto esta me deixando maluco.
O script é este bem simples:
#!/bin/bash
# Cria conta ASDF
echo "Criando a conta ASDF"
useradd -s /bin/bash -m -d /dados/asdf -c "Conta ASDF" -u 1007 asdf
# Edita selinux
echo "Modificando selinux"
sed -i 's/SELINUX=enforcing/SELINUX=disable/g' /etc/sysconfig/selinux

- Quando modifiquei e rodei novamente, criou a conta mas não modificou o arquivo selinux:
veja abaixo o resultado do "bash -x"
___
+Cria conta ASDF
cria.sh: line 2: Cria: Comando não encontrado
+ echo 'criando conta'
criando conta
+ useradd -s /bin/bash -m -d /dados/asdf -c 'Conta ASDF' -u 1007 asdf
Criando caixa-postal: Arquivo existe
' echo 'Modificando selinux
Modificando selinux
+ sed -i s/SELINUX=enforcing/SELINUX=disable/g /etc/sysconfig/selinux

- A conta foi criada corretamente, mas agora o arquivos selinux não foi alterado.
- Estou desistindo de fazer isso, tá muito difícil de entender porque os resultados dos comando não são iguais ao do terminal....




Olha se o "sed" não fez o correto é por que tinha algo de errado.
Execute o mesmo script no terminal e veja, para validar....


Abraço
#-------------------------------------------------------------------------------------#
Administrador de Redes Mistas Linux/Windows
LPI 101-102
LPI 201
Para consultas particulares acesse:
www.cunhatec.com.br

"Falar é fácil, me mostre o código." - Linus Torvalds


5. Re: useradd dentro do script [RESOLVIDO]

Carlos Cesar
ccsar

(usa CentOS)

Enviado em 14/04/2017 - 17:19h

Ola C. Cunha

A linha do comando "sed" executada pelo terminal funcionou corretamente, mas no script não rola.

De qualquer forma, brigado por responder.
Att
C. César


6. Re: useradd dentro do script [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 14/04/2017 - 20:36h

ccsar escreveu:
sed -i s/SELINUX=enforcing/SELINUX=disable/g /etc/sysconfig/selinux

- A conta foi criada corretamente, mas agora o arquivos selinux não foi alterado.


tenta assim
sed -i 's/SELINUX=enforcing/SELINUX=disable/g' /etc/sysconfig/selinux 


_______________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"


7. Re: useradd dentro do script [RESOLVIDO]

Carlos Cesar
ccsar

(usa CentOS)

Enviado em 18/04/2017 - 10:24h

Ola pessoal

Vou relatar aqui o fim dessa guerra.
Em primeiro lugar, obrigado a todos que me deram atenção e doaram uma parcela de seu precioso tempo e sabedoria.

As mudanças que eu vinha fazendo em um script, vinham de diversas fontes, algumas editadas e outras tantas, simplesmente coladas no interior do script.
Depois de comportamentos bizarros, como rodar uma vez, obter um resultado, alterar com linhas adicionais e não mais obter o "mesmo resultado" do primeiro teste nas linhas que estavam corretas, me fazia sempre lembrar "ISTO É UMA CIÊNCIA EXATA NÃO HÁ POSSIBILIDADE DE RESULTADOS DIFERENTES EM RODADAS IGUAIS....." Fui tateando com meus instintos até resolver não mais copiar ou editar um arquivo ".txt" e simplesmente gravá-lo como ".sh". Essa foi a causa do problema. Os editores que eu usei (gedit e vi) no linux, não sei porque, acabam por interpretar coisas misteriosas como parte da linha de comandos. Algum caractere de controle oculto que veio de outro edito como uma marcação de (ENTER ou TAB), não sei exatamente que lixo veio junto com as linhas copiadas, mas elas simplesmente não funcionavam.

Fiz um pequeno script no "gedit" escrevendo tudo da primeira a última linha sem colar nada, e aí tudo rodou como que por encanto. Foi um teste pequeno, com 26 linhas com comandos diversos e tudo funcionou corretamente.

Fica aqui o trauma a experiência que passei com edições de scripts. Talvez agora alguém que, com problemas e soluções semelhantes, tenha usado um editor mais eficiente, por favor me digam se existe um editor que seja mais eficiente no quesito "enxergar lixos ocultos" estou disposto a testá-los nas minhas próximas edições.

Att
ccsar.




8. Re: useradd dentro do script [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 18/04/2017 - 12:46h

ccsar escreveu:
por favor me digam se existe um editor que seja mais eficiente no quesito "enxergar lixos ocultos" estou disposto a testá-los nas minhas próximas edições.


velho ... eu nunca tive problemas com o gedit .. era uma de vc ter comparado os dos '.sh' para pelo menos tentar descobrir aonde estava o erro.

_______________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"


9. Re: useradd dentro do script [RESOLVIDO]

Carlos Cesar
ccsar

(usa CentOS)

Enviado em 18/04/2017 - 12:57h

Mauriciodez escreveu:

ccsar escreveu:
por favor me digam se existe um editor que seja mais eficiente no quesito "enxergar lixos ocultos" estou disposto a testá-los nas minhas próximas edições.


velho ... eu nunca tive problemas com o gedit .. era uma de vc ter comparado os dos '.sh' para pelo menos tentar descobrir aonde estava o erro.

_______________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"


Pois então... Fiz um arquivo .txt em um bloco de notas no windows porque eu não estava na máquina onde rodaria o script, salvei em um pendrive e depois abri no outro dia na máquina linux e simplesmente usei "salvar como" para colocar a extensão ".sh". Aí meus problemas começaram. Além de alguns comando se recusarem a funcionar, outras modificações que eu tentasse neste mesmo arquivo acabava tendo um comportamento não esperado. Mas no fim acabei por entender o que estava ocorrendo. Eu sempre usei também o "gedit" e "vi", e isso nunca me aconteceu antes.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts