Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: Debian Squeeze/Sid
Por foxcruz
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Scripts

Linux user

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

Login: ceejay-br, 2147 pontos

   


Descrição

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!

[ Download: criar.sh ]   [ Enviar nova versão ]

[ 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
   Script Linux recomendado Backup copiando para ftp durante 7 dias
   Script Linux recomendado Script para adicionar usuarios ftp
   Script Linux recomendado Firewall Iptables
   Script Linux recomendado Calculadora de host de uma rede
   Script Linux recomendado Enviar e visualizar Twitter no terminal

Comentários
Nenhum comentário foi encontrado.

Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.