From 6a0bdf2147b71f2a5224ffe5689a9b6a55dbf171 Mon Sep 17 00:00:00 2001 From: Adam Strauch Date: Sun, 13 Apr 2014 14:19:08 +0200 Subject: [PATCH] Argument to turn login screen off (--host=0.0.0.0 --unsecure --login=False) --- butterfly.server.py | 2 ++ butterfly/routes.py | 10 +++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/butterfly.server.py b/butterfly.server.py index 74d84ee..8b5102f 100644 --- a/butterfly.server.py +++ b/butterfly.server.py @@ -37,6 +37,8 @@ tornado.options.define("port", default=57575, type=int, help="Server port") tornado.options.define("shell", help="Shell to execute at login") tornado.options.define("unsecure", default=False, help="Don't use ssl not recommended") +tornado.options.define("login", default=True, + help="Use login screen at start") tornado.options.define("generate_certs", default=False, help="Generate butterfly certificates") diff --git a/butterfly/routes.py b/butterfly/routes.py index ba7471e..779a8f2 100644 --- a/butterfly/routes.py +++ b/butterfly/routes.py @@ -108,12 +108,16 @@ class TermWebSocket(Route, tornado.websocket.WebSocketHandler): self.communicate() def shell(self): - if self.callee is None and tornado.options.options.unsecure: + if self.callee is None and (tornado.options.options.unsecure and tornado.options.options.login): + # If callee is now known and we have unsecure connection user = input('login: ') try: self.callee = utils.User(name=user) except: self.callee = utils.User(name='nobody') + else: + # if login is not required, we will use the same user as butterfly is executed + self.callee = utils.User() assert self.callee is not None @@ -140,8 +144,8 @@ class TermWebSocket(Route, tornado.websocket.WebSocketHandler): if not tornado.options.options.unsecure or ( self.socket.local and self.caller == self.callee and - server == self.callee): - # User has been auth with ssl or is the same user as server + server == self.callee) or not tornado.options.options.login: + # User has been auth with ssl or is the same user as server or login is explicitly turned off try: os.setuid(self.callee.uid) except PermissionError: