diff --git a/teapot.py b/teapot.py index cbd3547..269b251 100644 --- a/teapot.py +++ b/teapot.py @@ -16,6 +16,7 @@ from os.path import exists from pathlib import Path from pwd import getpwnam + # from stat import S_IROTH, S_IRWXG, S_IRWXU, S_IXOTH from stat import S_IRGRP, S_IRWXO, S_IRWXU, S_IXGRP @@ -123,8 +124,8 @@ async def lifespan(app: FastAPI): # os.chown commands. # those are using the bit patterns provided with the "stat" module as below, # combining them happens via bitwise OR -# TO DO: find a way to not have to use rwx for others! STANDARD_MODE = S_IRWXU | S_IRGRP | S_IXGRP | S_IRWXO +# STANDARD_MODE = S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH # session state is kept in this global dict for each username as primary key # data stored within each subdict is # pid, port, created_at, last_accessed @@ -245,7 +246,13 @@ async def _create_user_dirs(username): with open(f"{config_dir}/storage-areas", "r", encoding="utf-8") as storage_areas: for line in storage_areas: storage_area, path = line.split(" ") - path = os.path.expandvars(path) + # path = os.path.expandvars(path) + path_components = path.split("/") + # check for different paths in storage-areas that need to be + # corrected. + if path_components[0] == "$HOME": + path_components[0] = f"/home/{username}" + path = os.path.join(*path_components) sa_properties_path = f"{user_sa_d_dir}/{storage_area}.properties" if not exists(sa_properties_path): with open(