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: 8.023 ]
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!
#!/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
Script para controle do Squid e firewall
get-geo2 - localiza o endereço de um IP/HOST no Google Maps
Criando Autoridades Certificadoras e Certificados de Testes no Linux
Adicionar/Deletar Usuarios Samba/Sistema
Nenhum comentário foi encontrado.
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
Mint Xfce não mantém a conexão no wi-fi (1)
Problemas com Driver NVIDIA (5)
Warcraft II Remastered no Linux? (8)









