diff --git a/menu.py b/menu.py index 8a76fca..1c44858 100644 --- a/menu.py +++ b/menu.py @@ -51,8 +51,8 @@ def menu1_process(id): def menu2_show(): print(get_header('-', '(extended functions)')) print(' 1 - Set default device IP-address') - print(' 2 - Read dmesg and syslog') - print(' 3 - ') + print(' 2 - Change root password') + print(' 3 - Read dmesg and syslog') print(' 4 - Create a backup of the specified partition') print(' 5 - Uninstall EN/RU languages') print(' 6 - Set kernel boot address') @@ -63,8 +63,8 @@ def menu2_show(): def menu2_process(id): if id == 1: return "set_def_ipaddr.by" - if id == 2: return "read_dmesg.py" - if id == 3: return None + if id == 2: return "passw.py" + if id == 3: return "read_dmesg.py" if id == 4: return [ "create_backup.py", "part" ] if id == 5: return [ "install_lang.py", "uninstall" ] if id == 6: return "activate_boot.py" diff --git a/passw.py b/passw.py new file mode 100644 index 0000000..7799ac2 --- /dev/null +++ b/passw.py @@ -0,0 +1,32 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import os +import sys +import time +import platform + +sys.path.append(os.path.dirname(os.path.abspath(__file__))) +import gateway +from gateway import die + + +gw = gateway.Gateway() + +if len(sys.argv) > 1: + new_passw = sys.argv[1] +else: + new_passw = input("Enter new password for root user: ") + +new_passw = new_passw.strip() +if len(new_passw) == 0: + die('Typed password is not correct!') + +gw.run_cmd('echo -e "{new_passw}\\n{new_passw}" | passwd root'.format(new_passw = new_passw)) +time.sleep(0.5) +gw.ssh_close() +if gw.check_ssh(gw.ip_addr, gw.ssh_port, new_passw) != 0: + die('Can\'t change password for root user via SSH') + +gw.passw = new_passw +print("The root password has been changed.")