Skip to content
Snippets Groups Projects
0_setup.py 1011 B
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')
    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')