/
opt
/
cloudlinux
/
venv
/
lib
/
python3.11
/
site-packages
/
xray
/
hooks
/
/opt/cloudlinux/venv/lib/python3.11/site-packages/xray/hooks
mkdir
upload
Name
Size
Mode
Actions
xray_user_dirs_hook.py
1690
0644
edit
dl
rm
Edit:
/opt/cloudlinux/venv/lib/python3.11/site-packages/xray/hooks/xray_user_dirs_hook.py
(1690B)
# coding=utf-8 # Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2025 All Rights Reserved # # Licensed under CLOUD LINUX LICENSE AGREEMENT # http://cloudlinux.com/docs/LICENSE.TXT from __future__ import absolute_import, print_function import os import shutil from clcommon.clpwd import ClPwd from clcommon.public_hooks.lib import ModifyUserHook from xray.create_user_uid_dirs import _create_user_log_dir class XrayUserDirsHook(ModifyUserHook): """ Update user's directories on user creation and deletion. """ def post_create_user(self, username, owner, **kwargs): # Create /usr/share/alt-php-xray-tasks/${uid} (root-owned, holds # root-written task files) plus a user-owned ${uid}/log/ subdir # (mode 0700) the PHP worker writes xray.to_file dumps into. try: uid = ClPwd().get_uid(username) base_dir = f"/usr/share/alt-php-xray-tasks/{uid}" os.makedirs(base_dir, 0o755, exist_ok=True) _create_user_log_dir(base_dir, uid) except ClPwd.NoSuchUserException: print(f"ERROR: No such user {username}") def pre_delete_user(self, username, **kwargs): # The user-owned ${uid}/log/ subdir counts toward the uid's quota, so # if it is left behind the panel refuses to reuse that uid for a new # account ("The requested uid (N) is already in use"). Fire before # deletion so the passwd entry is still there to resolve the uid. try: uid = ClPwd().get_uid(username) except ClPwd.NoSuchUserException: return shutil.rmtree(f"/usr/share/alt-php-xray-tasks/{uid}", ignore_errors=True)
Save
cmd:
run