44 lines
960 B
Python
44 lines
960 B
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:
|
|
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))
|