Script [RESOLVIDO]

1. Script [RESOLVIDO]

SrJock
DeathGun

(usa Ubuntu)

Enviado em 11/10/2016 - 14:35h

Estou com um script mais estou tendo dificuldade pra melhorar ele.
#!/bin/sh
lsusers="/tmp/users"
delay=5
echo $$ > /tmp/pids
if [ ! -f "$lsusers" ]
then
awk -F : '$3 >= 500 { print $1 " 15" }' /etc/passwd | grep -v '^nobody' > /tmp/users
fi
while true
do
while read usline
do
user="$(echo $usline | cut -d' ' -f1)"
s2ssh="$(echo $usline | cut -d' ' -f2)"
ps x | grep $user | grep -v grep | grep -v pts > /tmp/tmp2
s1ssh="$(cat /tmp/tmp2 | wc -l)"
echo "Usuario: $user - $s1ssh/$s2ssh"
if [ "$s1ssh" -gt "$s2ssh" ]; then
echo 'Desconectando conexoes SSH simultaneas'
while read line
do
tmp="$(echo $line | cut -d' ' -f1)"
echo "Desconectando conexao SSH com ID $tmp"
kill $tmp
done < /tmp/tmp2
rm /tmp/tmp2
fi
awk -F : '$3 >= 500 { print $1 " 15" }' /etc/passwd | grep -v '^nobody' > /tmp/users
done < "$lsusers"
echo "Aguardando $delay segundos para verificar novamente..."
sleep $delay
done

Esse script ele bloqueia os usuários ssh, no caso eu quero que ele pergunte qual usuário ssh quero limitar e qual o limite que quero que tenha nesse usuário.


  


2. MELHOR RESPOSTA

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 11/10/2016 - 22:09h

DeathGun escreveu:

Estou com um script mais estou tendo dificuldade pra melhorar ele.

Esse script ele bloqueia os usuários ssh, no caso eu quero que ele pergunte qual usuário ssh quero limitar e qual o limite que quero que tenha nesse usuário.


-----------------------------------------------------------
Boa noite, DeathGun.
Verifique se é isso que você quer . . .
#!/bin/bash
lsusers="/tmp/users"
delay=5
COL=$(($(tput cols)/3))
echo $$ > /tmp/pids

LINHA() { printf '%*s' "$COL" '' | sed "s/ /—/g" ; }

LOOPING() {
LINE=$((LINE+1))
[ -s $lsusers ] && awk -F":" '{if($3>=500 && $3<65534) print $1}' /etc/passwd > /tmp/users
NR=$(wc -l < "$lsusers")
((LINE>NR)) && { echo -e "\nAguardando $delay segundos para nova verificação" ; LINE=0 ; sleep $delay ; LOOPING ; } || echo -e "\n$(LINHA)\nPróximo Usuário."
user=$(sed -n "${LINE}p" $lsusers)
echo "LIMITAR o USUáRIO $user?"
read -p "[S/N]: " -n1 RESP
if [[ $RESP == +(S|s) ]];then
ps x| grep "$user"|grep -v grep|grep -v pts|cut -d' ' -f2 > /tmp/tmp2
s1ssh=$(wc -l < /tmp/tmp2)
echo ""
read -t5 -p "INFORME o LIMITE: " s2ssh ;[ $s2ssh ] || s2ssh="15" #Se não digitar NADA, em 5 segundos, DEFINE p/ "15".
echo -e "\nUsuário: $user - $s1ssh/$s2ssh"
if (("$s1ssh" > "$s2ssh")); then
echo "Desconectando conexoes SSH simultaneas"
while read line;do
echo "Desconectando conexao SSH do usuário: "$user" com ID: $line"
kill $line
done < /tmp/tmp2
else
LOOPING
fi
fi
LOOPING
}
LOOPING

E Não ESQUEÇA:
Se a resposta foi ESCLARECEDORA, MARQUE-A como A MELHOR,
Dessa forma, ganho uns pontos, o que incentiva a continuar colaborando . . . :)


É isso....
Qquer duvida, é só perguntar....

Att.:
Marcelo Oliver


3. Re: Script

Estefanio Brunhara
stefaniobrunhara

(usa CentOS)

Enviado em 11/10/2016 - 17:10h

Não entendi bem o que seu script se propõem a fazer, mas se você deseja apenas controlar quem pode usar o ssh, você pode fazer isto no /etc/ssh/sshd_config




vim /etc/ssh/sshd_config
AllowUsers estefanio alberto admin

/etc/init.d/sshd reload


4. Re: Script [RESOLVIDO]

SrJock
DeathGun

(usa Ubuntu)

Enviado em 11/10/2016 - 17:28h

Ele desconectar os usuários que atigem o limite permitido, eu limitei ele pra 15 usuários( então ele limitita todos os ssh para 15), o que eu quero fazer é específica cada quantidade em ssh diferentes, quero que ele me pergunte qual o shh que quero limitar e qual o limite.
Caso não de pra enteder bem, ai um link
http://pastebin.com/raw/0593T3cZ






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts