Newer
Older
#!/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')
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')