Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [root@osboxes customUserAdd]# git log
- commit 763190b4417b63d0e5e0647b1914fdc0c58cc894 (HEAD -> master, gitlab/master, github/master, github/HEAD, bitbucket/master)
- Merge: 31081b1 3064c53
- Author: Aecio P Barreto Jr <aecio.barreto.junior@concrete.com.br>
- Date: Fri Feb 16 14:24:59 2018 -0500
- Merge branch 'release/1.1'
- commit 3064c530c11ca326909304935f5731f4afbccf67 (tag: 1.1, github/release/1.1)
- Author: Aecio P Barreto Jr <aecio.barreto.junior@concrete.com.br>
- Date: Fri Feb 16 14:21:20 2018 -0500
- V1.1 - Usage feature
- commit 76413d5416dad25539b2d29f0ff2c6aad3b3f320 (tag: v1.1)
- Author: Aecio P Barreto Jr <aecio.barreto.junior@concrete.com.br>
- Date: Fri Feb 16 13:53:30 2018 -0500
- 2o commit - Usage function defined
- commit 31081b1e7e6789843619e6c55f9b1356b3db3849
- Author: Aecio P Barreto Jr <aecio.barreto.junior@concrete.com.br>
- Date: Fri Feb 16 13:09:34 2018 -0500
- 1o Commit
- [root@osboxes customUserAdd]#
- [root@osboxes customUserAdd]#
- [root@osboxes customUserAdd]# git log -p
- commit 763190b4417b63d0e5e0647b1914fdc0c58cc894 (HEAD -> master, gitlab/master, github/master, github/HEAD, bitbucket/master)
- Merge: 31081b1 3064c53
- Author: Aecio P Barreto Jr <aecio.barreto.junior@concrete.com.br>
- Date: Fri Feb 16 14:24:59 2018 -0500
- Merge branch 'release/1.1'
- commit 3064c530c11ca326909304935f5731f4afbccf67 (tag: 1.1, github/release/1.1)
- Author: Aecio P Barreto Jr <aecio.barreto.junior@concrete.com.br>
- Date: Fri Feb 16 14:21:20 2018 -0500
- V1.1 - Usage feature
- diff --git a/customUserAdd.sh b/customUserAdd.sh
- index 5515841..7f8a1be 100644
- --- a/customUserAdd.sh
- +++ b/customUserAdd.sh
- @@ -8,6 +8,8 @@
- # Autor : Aecio Junior <aecio.barreto.junior@concrete.com.br>
- # Data : Fri Feb 2 12:49:13 EST 2018
- # Versao : v1.0
- +# Data : Fri Feb 16 14:17:26 EST 2018
- +# Versao : v1.1
- # Usage : ssh -p22 -T sshuser@endereco.IP < ./CustomUserAdd.sh username
- ##----------------- Variaveis -----------------##
- commit 76413d5416dad25539b2d29f0ff2c6aad3b3f320 (tag: v1.1)
- Author: Aecio P Barreto Jr <aecio.barreto.junior@concrete.com.br>
- Date: Fri Feb 16 13:53:30 2018 -0500
- 2o commit - Usage function defined
- diff --git a/customUserAdd.sh b/customUserAdd.sh
- index 98eb057..5515841 100644
- --- a/customUserAdd.sh
- +++ b/customUserAdd.sh
- @@ -121,80 +121,94 @@ _MudaAtributos(){
- return $RC
- }
- -
- +
- +_FuncionUsage(){
- + echo -e "Usage: \n\t CustomUserAdd.sh [username|--help|-U]"
- + return 2
- +}
- +
- ##------------------- Inicio do Script --------------------#
- +
- +if [ $# -eq 1 ]; then
- + if [ "$1" == "--usage" -o "$1" == "-U" ]; then
- + _FuncionUsage
- + else
- +
- + ### Desativa bit imutavel
- + sudo test -f /root/unlock && sudo /root/unlock || { _MudaAtributos off || echo erro desativando atributos; }
- -### Desativa bit imutavel
- -sudo test -f /root/unlock && sudo /root/unlock || { _MudaAtributos off || echo erro desativando atributos; }
- -
- -### Verifica se o usuario existe, do contrario, adicionar.
- -if _VerificaUsuario $Usuario
- -then
- - echo Usuario ja cadastrado
- -else
- - if _AdicionaUsuario $Usuario
- - then
- - echo usuario adicionado com sucesso
- - if _AtualizaSenha $Usuario
- + ### Verifica se o usuario existe, do contrario, adicionar.
- + if _VerificaUsuario $Usuario
- then
- - echo senha atualizada conforme padrao inicial
- + echo Usuario ja cadastrado
- else
- - echo erro na atualizacao da senha. fazer manualemnte
- + if _AdicionaUsuario $Usuario
- + then
- + echo usuario adicionado com sucesso
- + if _AtualizaSenha $Usuario
- + then
- + echo senha atualizada conforme padrao inicial
- + else
- + echo erro na atualizacao da senha. fazer manualemnte
- + fi
- + else
- + echo erro no cadastro do usuario
- + fi
- fi
- - else
- - echo erro no cadastro do usuario
- - fi
- -fi
- -### Verifica se o acesso ssh esta autorizado ao usuario, senão, autorizar.
- -if _VerificaSSH $Usuario
- -then
- - if _ReiniciarSSH
- - then
- - echo ssh daemon reinciado por precaucao
- - else
- - echo erro reiniciando ssh
- - fi
- -else
- - if _BackupArquivoConfiguracao /etc/ssh/sshd_config
- - then
- - if _AutorizarSSH $Usuario
- + ### Verifica se o acesso ssh esta autorizado ao usuario, senão, autorizar.
- + if _VerificaSSH $Usuario
- then
- - echo usuario adicionado no ssh
- if _ReiniciarSSH
- then
- - echo ssh reinciado apos adicao de usuario na configuracao
- + echo ssh daemon reinciado por precaucao
- else
- - echo problemas reinciando ssh
- + echo erro reiniciando ssh
- fi
- else
- - echo erro autorizando ssh
- + if _BackupArquivoConfiguracao /etc/ssh/sshd_config
- + then
- + if _AutorizarSSH $Usuario
- + then
- + echo usuario adicionado no ssh
- + if _ReiniciarSSH
- + then
- + echo ssh reinciado apos adicao de usuario na configuracao
- + else
- + echo problemas reinciando ssh
- + fi
- + else
- + echo erro autorizando ssh
- + fi
- + else
- + echo erro backupeando arquivo de configuracao /etc/ssh/sshd_config
- + fi
- fi
- - else
- - echo erro backupeando arquivo de configuracao /etc/ssh/sshd_config
- - fi
- -fi
- -### Verifica se o usuario esta no sudosh, senão, adicionar.
- -if _VerificaSUDO $Usuario
- -then
- - echo Usuario ja cadastrado no sudo
- -else
- - if _BackupArquivoConfiguracao /etc/sudoers
- - then
- - echo arquivo sudoers backupeado
- - if _AutorizarSUDO $Usuario
- + ### Verifica se o usuario esta no sudosh, senão, adicionar.
- + if _VerificaSUDO $Usuario
- then
- - echo sudo autorizado
- + echo Usuario ja cadastrado no sudo
- else
- - echo erro autorizando o sudo
- + if _BackupArquivoConfiguracao /etc/sudoers
- + then
- + echo arquivo sudoers backupeado
- + if _AutorizarSUDO $Usuario
- + then
- + echo sudo autorizado
- + else
- + echo erro autorizando o sudo
- + fi
- + else
- + echo erro no backup do arquivo
- + fi
- fi
- - else
- - echo erro no backup do arquivo
- +
- + ### Ativa bit imutavel
- + sudo test -f /root/lock && sudo /root/lock || { _MudaAtributos on || echo erro ativando atributos; }
- fi
- +else
- + _FuncionUsage
- fi
- -
- -### Ativa bit imutavel
- -sudo test -f /root/lock && sudo /root/lock || { _MudaAtributos on || echo erro ativando atributos; }
- -
- +
- #-------------------- Fim do Script --------------------#
- commit 31081b1e7e6789843619e6c55f9b1356b3db3849
- Author: Aecio P Barreto Jr <aecio.barreto.junior@concrete.com.br>
- Date: Fri Feb 16 13:09:34 2018 -0500
- 1o Commit
- diff --git a/README.md b/README.md
- new file mode 100644
- index 0000000..ea98dbd
- --- /dev/null
- +++ b/README.md
- @@ -0,0 +1,35 @@
- +# [customUserAdd.sh](https://github.com/concrete-aecio-barreto-junior/customUserAdd/blob/master/customUserAdd.sh)
- +
- +## Description
- +
- +Script for adding users with customized access with secure config files handling.
- +
- +## Operation/workflow
- +
- +1. Useradd
- + - Check if user already exist else add;
- + - Set a initial password;
- +
- +2. SSH config
- + - Check if user's into "sshd.config" file, else add;
- + - Restart SSH daemon;
- +
- +3. Sudoers
- + - Check if user's into "sudoers" file, else add;
- +
- +## Usage
- +
- +Running on remote host:
- +
- +```
- +ssh -p22 -T sshuser@IP address < ./customUserAdd.sh username
- +```
- +
- +## Notes
- +
- +This script:
- +
- +* ... considers return codes to assure right flow;
- +* ... check file contents before change it;
- +* ... script do backup files before handle it;
- +* ... script assure secure attributes about files (chattr);
- diff --git a/customUserAdd.sh b/customUserAdd.sh
- new file mode 100644
- index 0000000..98eb057
- --- /dev/null
- +++ b/customUserAdd.sh
- @@ -0,0 +1,200 @@
- +#!/bin/bash
- +
- +# Titulo : "CustomUserAdd.sh"
- +# Descricao : Este script garante a adicao segura de usuarios:
- +# 1. Cria usuario
- +# 2. Acrescenta ao sudoers
- +# 3. Autoriza no sshd.conf
- +# Autor : Aecio Junior <aecio.barreto.junior@concrete.com.br>
- +# Data : Fri Feb 2 12:49:13 EST 2018
- +# Versao : v1.0
- +# Usage : ssh -p22 -T sshuser@endereco.IP < ./CustomUserAdd.sh username
- +
- +##----------------- Variaveis -----------------##
- +
- +## Usuario a ser cadastrado.
- +Usuario="$1"
- +
- +## Referencias de usuarios contidos no sudoers
- +UserRef1="fulano"
- +UserRef2="ciclano"
- +UserRef3="beltrano"
- +
- +##------------------ Funcoes ------------------##
- +## Funcao para verificar existencia de um dado usuario
- +_VerificaUsuario(){
- + local RC=0
- + local Usuario=$1
- + id $Usuario || local RC=$?
- + return $RC
- +}
- +
- +## Funcao para cadastrar usuario
- +_AdicionaUsuario(){
- + local RC=0
- + local Usuario=$1
- + local Comentario="User added by `basename $0`"
- + local DirHome=/home/$Usuario
- + local Shell="/bin/bash"
- + sudo /usr/sbin/useradd --create-home --comment "$Comentario" --home "$DirHome" --shell "$Shell" $Usuario || local RC=$?
- + return $RC
- +}
- +
- +## Atualiza senha do usuario para senha inicial padrao
- +## Solicitar troca de senha no primeiro acesso;
- +_AtualizaSenha(){
- + local RC=0
- + local Usuario=$1
- + local SenhaInicial='p@ssw0rd'
- + echo "$Usuario:$SenhaInicial" | sudo /usr/sbin/chpasswd || local RC=$?
- + return $RC
- +}
- +
- +## Verifica se o acesso ssh esta autorizado para dado usuario
- +_VerificaSSH(){
- + local RC=0
- + local Usuario=$1
- + sudo grep -E "^AllowUsers.*$Usuario" /etc/ssh/sshd_config || local RC=$?
- + return $RC
- +}
- +
- +## Realiza backup de arquivo de configuracao fornecido como argumento
- +_BackupArquivoConfiguracao(){
- + local RC=0
- + local Arquivo=$1
- + sudo cp -Rfa $Arquivo{,.`date "+%Y%m%d-%H%M"`} || local RC=$?
- + return $RC
- +}
- +
- +## Acrescenta usuario no arq. config. do SSH autorizando acesso
- +_AutorizarSSH(){
- + local RC=0
- + local Usuario=$1
- + sudo sed -i "/^AllowUsers/s/.*/& $Usuario/" /etc/ssh/sshd_config || local RC=$?
- + return $RC
- +}
- +
- +## Reinicia o ssh daemon
- +_ReiniciarSSH(){
- + local RC=0
- +
- + { sudo test -f /etc/init.d/ssh && sudo /etc/init.d/ssh restart; } || \
- + { sudo test -f /etc/init.d/sshd && sudo /etc/init.d/sshd restart; } || \
- + local RC=$?
- +
- + return $RC
- +}
- +
- +## Verifica se dado usuario encontra-se no sudo
- +_VerificaSUDO(){
- + local RC=0
- + local Usuario=$1
- + sudo grep -E -e "$UserRef1.*$1" -e "$UserRef2.*$1" -e "$UserRef3.*$1" /etc/sudoers || local RC=$?
- + return $RC
- +}
- +
- +## Acrescenta usuario CIT no sudoers
- +_AutorizarSUDO(){
- + local RC=0
- + local Usuario=$1
- + sudo sed -i "/$UserRef1\|$UserRef2\|$UserRef3/s/.*/&,$Usuario/" /etc/sudoers || local RC=$?
- + return $RC
- +}
- +
- +## Muda atributos de bit imutavel (on/off)
- +_MudaAtributos(){
- +
- + local RC=0
- + local ST="$1"
- + if [ "$ST" == "on" ]; then
- + local State='+i'
- + elif [ "$ST" == "off" ]; then
- + local State='-i'
- + fi
- +
- + sudo chattr $State /etc/ssh/sshd_config || local RC=$?
- + sudo chattr $State /etc/sudoers || local RC=$?
- + sudo chattr $State /etc/passwd || local RC=$?
- + sudo chattr $State /etc/shadow || local RC=$?
- + sudo chattr $State /etc/gshadow || local RC=$?
- + sudo chattr $State /etc/group || local RC=$?
- +
- + return $RC
- +}
- +
- +##------------------- Inicio do Script --------------------#
- +
- +### Desativa bit imutavel
- +sudo test -f /root/unlock && sudo /root/unlock || { _MudaAtributos off || echo erro desativando atributos; }
- +
- +### Verifica se o usuario existe, do contrario, adicionar.
- +if _VerificaUsuario $Usuario
- +then
- + echo Usuario ja cadastrado
- +else
- + if _AdicionaUsuario $Usuario
- + then
- + echo usuario adicionado com sucesso
- + if _AtualizaSenha $Usuario
- + then
- + echo senha atualizada conforme padrao inicial
- + else
- + echo erro na atualizacao da senha. fazer manualemnte
- + fi
- + else
- + echo erro no cadastro do usuario
- + fi
- +fi
- +
- +### Verifica se o acesso ssh esta autorizado ao usuario, senão, autorizar.
- +if _VerificaSSH $Usuario
- +then
- + if _ReiniciarSSH
- + then
- + echo ssh daemon reinciado por precaucao
- + else
- + echo erro reiniciando ssh
- + fi
- +else
- + if _BackupArquivoConfiguracao /etc/ssh/sshd_config
- + then
- + if _AutorizarSSH $Usuario
- + then
- + echo usuario adicionado no ssh
- + if _ReiniciarSSH
- + then
- + echo ssh reinciado apos adicao de usuario na configuracao
- + else
- + echo problemas reinciando ssh
- + fi
- + else
- + echo erro autorizando ssh
- + fi
- + else
- + echo erro backupeando arquivo de configuracao /etc/ssh/sshd_config
- + fi
- +fi
- +
- +### Verifica se o usuario esta no sudosh, senão, adicionar.
- +if _VerificaSUDO $Usuario
- +then
- + echo Usuario ja cadastrado no sudo
- +else
- + if _BackupArquivoConfiguracao /etc/sudoers
- + then
- + echo arquivo sudoers backupeado
- + if _AutorizarSUDO $Usuario
- + then
- + echo sudo autorizado
- + else
- + echo erro autorizando o sudo
- + fi
- + else
- + echo erro no backup do arquivo
- + fi
- +fi
- +
- +### Ativa bit imutavel
- +sudo test -f /root/lock && sudo /root/lock || { _MudaAtributos on || echo erro ativando atributos; }
- +
- +#-------------------- Fim do Script --------------------#
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement