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.037 ]
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
Criação de servidores de arquivos simples com Samba
Dê utilidade aquelas teclas que não servem pra nada do seu teclado
Cadastro de usuarios para proxy autenticado
Migração de Aplicações para Ambiente Web - Uma Abordagem Prática
Calculadora de host de uma rede
Nenhum comentário foi encontrado.
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Como realizar um ataque de força bruta para desobrir senhas?
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
Erro ao instalar programa, "você tem pacotes retidos quebrados&qu... (0)
VOL já não é mais como antes? (15)
Como personalizar o lxde? [RESOLVIDO] (5)
Flatpaks não funcionam após atualizar pelo Gerenciador de Atualizações... (3)









