D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
proc
/
self
/
root
/
opt
/
cloudlinux
/
venv
/
lib
/
python3.11
/
site-packages
/
clconfigure
/
Filename :
linksafe.py
back
Copy
# 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 clconfigure import task, run from clconfigure.packages import install_package 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*", ): tp.submit(run, ['/usr/bin/cl-linksafe-apply-group', package]) def _installed_packages_iter(*patterns: str) -> Iterator[str]: result = run(["rpm", "-qa", *patterns]) lines = result.stdout.strip().splitlines() for line in lines: yield line