Criar usuários com ponto (nome.usuario) no Slackware

Publicado por Charles de Jesus Lima da Costa (última atualização em 06/11/2011)

[ Hits: 7.690 ]

Download criar.sh




Um grande problema encontrado por diversos administradores de servidores Slackaware é quando seu cliente pede para que os logins de usuário sajam no padrão nome.sobrenome. Trata-se de um problema porque se você simplesmente digitar "useradd nome.sobrenome" recebera a mensagem de erro alertando sobre a sintaxe incorreta do login do usuário devido ao ponto.

E agora? O que fazer quando todos os serviços possuem essa sintaxe?
Podemos fazer essa tarefa na "unha" editando os arquivos /etc/passwd , /etc/shadow e /etc/samba/smbpasswd, e ainda renomear o home dos usuários "mv /home/nomesobrenome /home/nome.sobrenome".
Fala a verdade, nem dá tanto trabalho assim. Mas fazer isso para 100, 200, 500 usuários é terrível!

Esse script trata justamente sobre a criação de usuários com o padrão nome.sobrenome e ainda faz isso em lotes!
Basta ter um arquivo nomeado como nomes no mesmo diretorio do script com a seguinte sintaxe por linha:

nomeusuario nome.usuario senha grupopadrao

Espero que ajude a muitos!

  



Esconder código-fonte

#!/bin/bash

#################################################################################################
#                                    #
# ESSE SCRIPT CONTORNA A RESTRICAO ENCONTRADA EM ALGUMAS DISTROS (NO MEU CASO SLACKWARE)   #
# PARA A CRIACAO DE USUARIOS COM UM PONTO NO LOGIN (useradd user.name).            #
# E FUNDAMENTAL POSSUIR O ARQUIVO 'nomes' NO MESMO DIRETORIO QUE ESSE SCRIPT COM A SINTAXE   #
# NOMEUSUARIO NOME.USUARIO SENHA GRUPOPADRAO                     #
#                                    #
#################################################################################################
#                                    #
# Desenvolvido por Charles de Jesus (CeeJay-BR @ Viva o Linux) em 02.11.2011         #
#                                    #
#################################################################################################



#Backup dos arquivos originais do sistema
cp /etc/passwd /scripts/samba/passwd.bak
cp /etc/shadow /scripts/samba/shadow.bak
cp /etc/samba/smbpasswd /scripts/samba/smbpasswd.bak

#Inicio da rotina - Armazena em i cada login contido na primeira coluna do arquivo nomes
for i in $(awk '{print $1}' nomes)
do

#Definindo variaveis
nome1=$(grep $i nomes | awk '{print $1}') #Nome sem o ponto
nome2=$(grep $i nomes | awk '{print $2}') #Nome com o ponto
senha=$(grep $i nomes | awk '{print $3}') #Senha
grupo=$(grep $i nomes | awk '{print $4}') #Grupo

#Verfica se o usuario ja existe:
#Se nao existir o login sem ponto e o login com ponto
if [ -z $(grep $nome1 /etc/passwd) ] && [ -z $(grep $nome2 /etc/passwd) ] ; then

#Adiciona o usuario criando o diretorio /home/$login, adicionando-o ao grupo definido na quarta coluna do arquivo nomes
useradd $i -m -g $grupo

#Aplica a senha definida na terceira coluna do arquivo nomes
echo $i:$senha | chpasswd

#Adiciona o usurio no SAMBA
(echo $senha; echo $senha) | smbpasswd -s -a $i

#Altera os arquivos do sistema: Substitui o login sem ponto pelo login com ponto
sed "s/$nome1/$nome2/g" /etc/passwd > /etc/passwd.tmp
rm /etc/passwd
mv /etc/passwd.tmp /etc/passwd

sed "s/$nome1/$nome2/g" /etc/shadow > /etc/shadow.tmp
rm /etc/shadow
mv /etc/shadow.tmp /etc/shadow

sed "s/$nome1/$nome2/g" /etc/samba/smbpasswd > /etc/samba/smbpasswd.tmp
rm /etc/samba/smbpasswd
mv /etc/samba/smbpasswd.tmp /etc/samba/smbpasswd

mv "/home/$nome1" "/home/$nome2"

cp /etc/passwd /scripts/samba/passwd
cp /etc/shadow /scripts/samba/shadow
cp /etc/samba/smbpasswd /scripts/samba/smbpasswd

else
#Exibe uma mensagem de erro caso o usuario ja esteja cadastrado no sistema
echo "Usuario ja cadastrado!" $nome2
fi

done

Scripts recomendados

Aplicando layer7 sem digitar uma linha de código sequer

POSTFIX AUTOMÁTICO COM MYSQL E IPTABLES - EXCLUINDO USUÁRIO

Pesquisa Binária usando Bash-Shell

Dialog para bash 2

DHCP Configurator


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts