Como enviarte un log por scp de los usuarios sin tener permisos sudo en linux

Buenas hoy os traigo un método un poco enrevesado para poder enviarte los log de inicio de sesión de un servidor de todos los usuarios sin ser root ni tener permisos sudo.

Primer paso creamos el scripts:

#!/bin/bash

ant=$(cat /home/usuario/user/user.txt) #leo el listado de usuarios antiguos

act=$(who) #leo los usuarios logueados

igu=0

if [ «$act» != «$ant» ] #comprobamos los resultados de las variables y si no es igual los añadimos al fichero envio

then

    who > /home/usuario/user/user.txt #machaco el fichero y meto el dato que cambia

    rm /home/usuario/user/usuariopre.txt #Borro el fichero usuariopre

    touch /home/usuario/user/usuariopre.txt

    rm /home/usuario/user/usuario.txt #Borro el fichero usuario

    touch /home/usuario/user/usuario.txt

    while IFS= read -r line #leo el fichero linea a linea

    do

        #echo «$line» #control

        temp=$(echo $line| cut -d » » -f1)

        temp2=$(echo $line| cut -d » » -f3) #extraigo los datos nesesarios en variables

        temp3=$(echo $line| cut -d » » -f4)

        echo «El usuario $temp ha iniciado sesión en la fecha y hora: $temp2 $temp3»>>/home/usuario/user/usuariopre.txt #meto las variables con el texto elejido    

    done < /home/usuario/user/user.txt

    while IFS= read -r linea #leo el fichero linea a linea

    do

        #echo «$linea» #control

        while IFS= read -r lines #leo el fichero linea a linea

            do

                #echo «$lines lines» #control

                if [ «$lines» = «$linea» ] #si la linea coincide pongo la variable a 1

                then

                    igu=1

                    #echo «igual» #control              

                fi

            done < /home/usuario/user/envio.txt

            #comprobamos que la linea existe

            if [ «$igu» -eq 0 ] #si la linea se repite durante el segundo bicle no entra

            then

                echo «$linea»>>/home/usuario/user/usuario.txt #meto las variables con el texto elejido

                #echo «escrivo» #control

            fi 

        igu=0        

    done < /home/usuario/user/usuariopre.txt

    cat /home/usuario/user/usuario.txt >> /home/usuario/user/envio.txt #actualizo el fichero para enviar

    scp /home/usuario/user/envio.txt antonio@172.16.3.106:/home/antonio/usuarios-otroserver.txt #enviamos el fichero con el log del servidor

fi

al final de scripts encontramos una sentencia scp ponemos los datos de el servido donde queremos enviar el log

Después lo guardamos en nuestro usuario

Después hacemos un crontab -e y ponemos la linea:

con esto te envía a otro servidor los logs de inicio de sesiones sin ser root

Es curioso que de esta manera podamos sacar cuando se loguean todos los usuarios de linux y sin tener permisos de administrador

Esto es un ejemplo de bash scripting no soy un experto pero lo he puesto por curiosidad