#!/usr/bin/env python3 # -*- coding: utf-8 -*- import subprocess import utils def setup(interactive=True): # Create / update admin account utils.log('Checking admin account') cmds = list() code, out = utils.exec_cmd(['id', 'admin']) if code != 0: cmds.append('useradd -m -s /bin/bash admin') out = '' if 'sudo' not in out: cmds.append('usermod -aG sudo admin') cmds.append('mkdir -p /home/admin/.ssh') cmds.append('chmod 700 /home/admin/.ssh') cmds.append('chown -R admin:admin /home/admin/.ssh') utils.run_commands(cmds) # Set password if any pwd = utils.get_conf('SHELL_ADMIN_PWD') if pwd: p = subprocess.Popen(['passwd', '-q', 'admin'], stdin=subprocess.PIPE) p.communicate(input=b'%(pwd)s\n%(pwd)s' % dict(pwd=pwd.encode('utf-8'))) if p.returncode != 0: raise Exception('Failed to set admin account password.') utils.log('\033[1;33m The admin account password has been set. \033[0m')