Files
modoboa-installer/modoboa_installer/system.py
2017-01-17 15:34:21 +01:00

52 lines
1.2 KiB
Python

"""System related functions."""
import grp
import pwd
import sys
from . import utils
def create_user(name, home=None):
"""Create a new system user."""
try:
pwd.getpwnam(name)
except KeyError:
pass
else:
extra_message = "."
if home:
extra_message = (
" but please make sure the {} directory exists.".format(
home))
utils.printcolor(
"User {} already exists, skipping creation{}".format(
name, extra_message), utils.YELLOW)
return
cmd = "useradd -m "
if home:
cmd += "-d {} ".format(home)
utils.exec_cmd("{} {}".format(cmd, name))
if home:
utils.exec_cmd("chmod 755 {}".format(home))
def add_user_to_group(user, group):
"""Add system user to group."""
try:
pwd.getpwnam(user)
except KeyError:
print("User {} does not exist".format(user))
sys.exit(1)
try:
grp.getgrnam(group)
except KeyError:
print("Group {} does not exist".format(group))
sys.exit(1)
utils.exec_cmd("usermod -a -G {} {}".format(group, user))
def enable_service(name):
"""Enable a service at startup."""
utils.exec_cmd("systemctl enable {}".format(name))