Iniciar sesión en GNU/Linux usando twitter

3 envíos / 0 nuevos
Último envío
#1 Sáb, 26/03/2016 - 23:55
Pajaro_xdd
Imagen de Pajaro_xdd
Desconectado/a
colaborador
se unió: 16/03/16

Iniciar sesión en GNU/Linux usando twitter

Estado: 
[ACTIVO]

Buenas! He hecho un script para iniciar sesión en sistemas GNU/Linux usando Twitter, podríamos pensar en esto cómo un "Latch casero".

Basicamente debemos cambiar el shell de inicio de sesión de un usuario por la ruta en la cuál se encuentra éste script (ej: /home/user/auth.py) y opcionalmente se puede configurar el sistema para iniciar sesión sin pedir contraseña (ya que esto es para iniciar sesión 'facil y rápido' aunque tener que revisar Twitter puede resultar molesto/absurdo para algunos).
Una vez que tratemos de iniciar sesión por ssh o su, se enviará un mensaje directo con un pin a nuestro usuario, una vez introducido el pin se inicia sesión.
Importante: Para usar el script primero hay que crear una app en dev.twitter.com/apps, poner el consumer key, y consumer secret en el script, y usar esas keys para obtener el access token y el access token secret.

Cómo obtener los token de acceso: http://tweepy.readthedocs.org

Y aquí el código:

#!/usr/bin/env python3
#
#  twitterAuth.py
#  
#  Copyright 2016 @Pajaro_xdd <p4bloalvarez@gmail.com>
#  
#  This program is free software; you can redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation; either version 2 of the License, or
#  (at your option) any later version.
#  
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#  
#  You should have received a copy of the GNU General Public License
#  along with this program; if not, write to the Free Software
#  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
#  MA 02110-1301, USA.
#  
#  

import tweepy
import random
from os import system
import getpass
import time

class TwitterAuth:
	def __init__(self):
		self.consumer_key = ''
		self.consumer_secret = ''
		self.access_token = ''
		self.access_token_secret = ''
		self.auth = tweepy.OAuthHandler(self.consumer_key, self.consumer_secret)
		self.auth.set_access_token(self.access_token, self.access_token_secret)
		self.twitter_account = ''
		self.user = getpass.getuser()
		self.api = tweepy.API(self.auth)
	def sendMessage(self):
		self.pin = random.randint(1000, 9999)
		self.api.send_direct_message(self.twitter_account, text='Login request for user: ' + self.user + '\nPIN: ' + str(self.pin))
	def getShell(self, pin):
		if int(pin) == self.pin:
			self.api.send_direct_message(self.twitter_account, text='Login with username: ' + self.user + ' with the pin: ' + str(self.pin))
			return True

def main(args):
	auth = TwitterAuth()
	auth.sendMessage()
	pin =  getpass.getpass('Input the pin: ')
	if auth.getShell(pin):
		print('Pin code correct!\n')
		system('bash --login')
	else:
		print('The pin is incorrect, try again if you not are attaker ;)\n')
	return 0

if __name__ == '__main__':
    import sys
    sys.exit(main(sys.argv))

Bueno, espero que me digan qué les parece, si cambiarían algo, etc...

Salu2!!

Sáb, 23/04/2016 - 02:16
DenJohX
Imagen de DenJohX
Desconectado/a
colaborador
se unió: 22/04/16

Muy interesante!. No se me había ocurrido agregar login social para el sistema... Se me ocurre que se podría usar para una pc pública con login de twitter, facebook, google, etc. hmmm.

:wq

Dom, 08/05/2016 - 01:01
Wasmosy
Imagen de Wasmosy
Desconectado/a
colaborador
se unió: 08/05/16

Teniendo en cuenta que no tienes un problema con el script, te iba recomendar ponerlo en la seccion de script utiles de la wiki pero tal parece que no esta ese apartado todavia

 

Saludos

Me gusta la cerveza bien fria, la guitarra distorsionada y GNU/Linux