示例#1
0
def update():
    """Updates system package index"""
    try:
        pacman.refresh()
        logger.success('ctl:pkg:update', 'Index updated')
    except Exception as e:
        raise CLIException(str(e))
示例#2
0
def nslcd():
    """Initialize distribution PAM integration of OpenLDAP."""
    patchfiles = [
        ("/etc/pam.d/system-auth", "001-add-ldap-to-system-auth.patch"),
        ("/etc/pam.d/su", "002-add-ldap-to-su.patch"),
        ("/etc/pam.d/su-l", "003-add-ldap-to-su-l.patch"),
        ("/etc/pam.d/passwd", "004-add-ldap-to-passwd.patch"),
        ("/etc/pam.d/system-login", "005-add-ldap-to-system-login.patch"),
        ("/etc/nsswitch.conf", "006-add-ldap-to-nsswitch.patch"),
        ("/etc/nslcd.conf", "007-add-ldap-to-nslcd.patch")
    ]
    for x in patchfiles:
        if not os.path.exists(os.path.join("/usr/share/arkos/nslcd", x[1])):
            raise CLIException(
                "Patch files could not be found. Your installation may "
                "be corrupted. Please reinstall the `arkos-configs` package.")

    logger.debug('ctl:init:nslcd', 'Stopping daemon: nslcd')
    s = shell("systemctl stop nslcd")
    if s["code"] != 0:
        raise click.ClickException(s["stderr"].decode())

    logger.info('ctl:init:nslcd', 'Patching system files')
    for x in patchfiles:
        shell("patch -N {0} {1}".format(
            x[0], os.path.join("/usr/share/arkos/nslcd", x[1])))

    logger.debug('ctl:init:nslcd', 'Starting daemon: nslcd')
    shell("systemctl enable nslcd")
    shell("systemctl start nslcd")
    logger.success('ctl:init:nslcd', 'Complete')
示例#3
0
def drop_user(name):
    """Delete a database user."""
    try:
        u = databases.get_user(name)
        u.remove()
        logger.success('ctl:dbusr:drop', 'Dropped {0}'.format(name))
    except Exception as e:
        raise CLIException(str(e))
示例#4
0
def drop(name):
    """Delete a database."""
    try:
        db = databases.get(name)
        db.remove()
        logger.success('ctl:db:drop', 'Dropped {0}'.format(name))
    except Exception as e:
        raise CLIException(str(e))
示例#5
0
def chmod(user_name, db_name, grant):
    """Get or set database user permissions."""
    try:
        u = databases.get_user(user_name)
        u.chperm("grant" if grant else "revoke", databases.get(db_name))
        logger.success('ctl:dbusr:chmod', 'Permissions set')
    except Exception as e:
        raise CLIException(str(e))
示例#6
0
def add_user(name, type_id):
    """Add a database user."""
    try:
        manager = databases.get_managers("db-" + type_id)
        manager.add_user(name)
        logger.success('ctl:dbusr:add', 'Added user {0}'.format(name))
    except Exception as e:
        raise CLIException(str(e))
示例#7
0
def enable(id):
    """Enable connection to a network on boot"""
    try:
        n = network.get(id)
        n.enable()
        logger.success('ctl:net:enable', 'Enabled {0}'.format(id))
    except Exception as e:
        raise CLIException(str(e))
示例#8
0
def connect(id):
    """Connect to a network"""
    try:
        n = network.get(id)
        n.connect()
        logger.success('ctl:net:connect', 'Connected {0}'.format(id))
    except Exception as e:
        raise CLIException(str(e))
示例#9
0
def delete(id):
    """Remove a website"""
    try:
        site = websites.get(id)
        site.remove()
        logger.success('ctl:site:delete', 'Removed {0}'.format(id))
    except Exception as e:
        raise CLIException(str(e))
示例#10
0
def update(id):
    """Update a website"""
    try:
        site = websites.get(id)
        site.update()
        logger.success('ctl:site:update', 'Updated {0}'.format(id))
    except Exception as e:
        raise CLIException(str(e))
示例#11
0
def disable(id):
    """Disable a website"""
    try:
        site = websites.get(id)
        site.nginx_disable()
        logger.success('ctl:site:disable', 'Disabled {0}'.format(id))
    except Exception as e:
        raise CLIException(str(e))
示例#12
0
文件: filesystems.py 项目: ns408/core
def umount(id):
    """Unmount a filesystem"""
    try:
        fs = filesystems.get(id)
        fs.umount()
        logger.success('ctl:fs:umount', 'Unmounted {0}'.format(id))
    except Exception as e:
        raise CLIException(str(e))
示例#13
0
文件: filesystems.py 项目: ns408/core
def delete(id):
    """Delete a virtual disk"""
    try:
        fs = filesystems.get(id)
        fs.remove()
        logger.success('ctl:fs:delete', 'Deleted {0}'.format(id))
    except Exception as e:
        raise CLIException(str(e))
示例#14
0
文件: filesystems.py 项目: ns408/core
def disable(id):
    """Disable mounting a filesystem on boot"""
    try:
        fs = filesystems.get(id)
        fs.disable()
        logger.success('ctl:fs:disable', 'Disabled {0}'.format(id))
    except Exception as e:
        raise CLIException(str(e))
示例#15
0
文件: filesystems.py 项目: ns408/core
def enable(id):
    """Mount a filesystem on boot"""
    try:
        fs = filesystems.get(id)
        fs.enable()
        logger.success('ctl:fs:enable', 'Enabled {0}'.format(id))
    except Exception as e:
        raise CLIException(str(e))
示例#16
0
def delete(id):
    """Delete a network connection"""
    try:
        n = network.get(id)
        n.remove()
        logger.success('ctl:net:delete', 'Deleted {0}'.format(id))
    except Exception as e:
        raise CLIException(str(e))
示例#17
0
def stop(name):
    """Stop a service"""
    try:
        service = services.get(name)
        service.stop()
        logger.success('ctl:svc:stop', 'Stopped {0}'.format(name))
    except Exception as e:
        raise CLIException(str(e))
示例#18
0
def disconnect(id):
    """Disconnect from a network"""
    try:
        n = network.get(id)
        n.disconnect()
        logger.success('ctl:net:disconnect', 'Disconnected {0}'.format(id))
    except Exception as e:
        raise CLIException(str(e))
示例#19
0
def disable(name):
    """Disable a service on boot"""
    try:
        service = services.get(name)
        service.disable()
        logger.success('ctl:svc:disable', 'Disabled {0}'.format(name))
    except Exception as e:
        raise CLIException(str(e))
示例#20
0
文件: files.py 项目: ns408/core
def remove_share(id):
    """Disable a fileshare link."""
    try:
        share = shared_files.get(id)
        share.delete()
        logger.success('ctl:links:delete', 'Deleted share {0}'.format(id))
    except Exception as e:
        raise CLIException(str(e))
示例#21
0
def create_db(name, type_id):
    """Add a database."""
    try:
        manager = databases.get_managers("db-" + type_id)
        manager.add_db(name)
        logger.success('ctl:db:create', 'Added {0}'.format(name))
    except Exception as e:
        raise CLIException(str(e))
示例#22
0
def delete(id):
    """Delete a certificate."""
    try:
        cert = certificates.get(id)
        cert.remove()
        logger.success('ctl:cert:delete', 'Deleted {0}'.format(id))
    except Exception as e:
        raise CLIException(str(e))
示例#23
0
文件: files.py 项目: ns408/core
def update_share(id, expires):
    """Update a fileshare link's expiration."""
    try:
        share = shared_files.get(id)
        share.update_expiry(expires)
        logger.success('ctl:links:update', 'Updated share {0}'.format(id))
    except Exception as e:
        raise CLIException(str(e))
示例#24
0
def add_domain(name):
    """Add a domain to arkOS LDAP"""
    try:
        d = domains.Domain(name=name)
        d.add()
        logger.success('ctl:dom:add', 'Added {0}'.format(name))
    except Exception as e:
        raise CLIException(str(e))
示例#25
0
def delete_domain(name):
    """Delete an arkOS LDAP domain"""
    try:
        d = domains.get(name)
        d.remove()
        logger.success('ctl:dom:delete', 'Deleted {0}'.format(name))
    except Exception as e:
        raise CLIException(str(e))
示例#26
0
def delete_group(name):
    """Delete an arkOS LDAP group"""
    try:
        g = groups.get(name=name)
        g.delete()
        logger.success('ctl:grp:delete', 'Deleted {0}'.format(name))
    except Exception as e:
        raise CLIException(str(e))
示例#27
0
def add_group(name, users):
    """Add a group to arkOS LDAP"""
    try:
        g = groups.Group(name=name, users=users)
        g.add()
        logger.success('ctl:grp:add', 'Added {0}'.format(name))
    except Exception as e:
        raise CLIException(str(e))
示例#28
0
def delete_user(name):
    """Delete an arkOS LDAP user"""
    try:
        u = users.get(name=name)
        u.delete()
        logger.success('ctl:usr:delete', 'Deleted {0}'.format(name))
    except Exception as e:
        raise CLIException(str(e))
示例#29
0
def passwd(name, password):
    """Change an arkOS LDAP user password"""
    try:
        u = users.get(name=name)
        u.update(password)
        logger.success('ctl:usr:passwd',
                       'Password changed for {0}'.format(name))
    except Exception as e:
        raise CLIException(str(e))
示例#30
0
文件: security.py 项目: ns408/core
def block(id):
    """Block all network access to service"""
    try:
        svc = tracked_services.get(id)
        svc.policy = 0
        svc.save()
        logger.success('ctl:sec:block', 'Access to {0} blocked'.format(id))
    except Exception as e:
        raise CLIException(str(e))