REDROOM
PHP 8.3.31
Path:
Logout
Edit File
Size: 1.14 KB
Close
/proc/thread-self/root/opt/cloudlinux/venv/lib/python3.11/site-packages/lvestats/lib/commons/fileutil.py
Text
Base64
# coding=utf-8 # # Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2019 All Rights Reserved # # Licensed under CLOUD LINUX LICENSE AGREEMENT # http://cloudlinux.com/docs/LICENSE.TXT import os def open_nofollow(path): """ Open *path* rejecting symlinks at every component, not just the leaf. Uses openat() (via *dir_fd*) to walk each component with O_NOFOLLOW so that an attacker who controls an intermediate directory (e.g. /tmp/lshttpd owned by nobody) cannot substitute it with a symlink. :return: file descriptor (caller must close) :raises: OSError if any component is a symlink or does not exist """ parts = path.lstrip('/').split('/') fd = os.open('/', os.O_RDONLY | os.O_DIRECTORY) try: for component in parts[:-1]: next_fd = os.open( component, os.O_RDONLY | os.O_NOFOLLOW | os.O_DIRECTORY, dir_fd=fd, ) os.close(fd) fd = next_fd result_fd = os.open( parts[-1], os.O_RDONLY | os.O_NOFOLLOW, dir_fd=fd, ) finally: os.close(fd) return result_fd
Save
Close
Exit & Reset
Text mode: syntax highlighting auto-detects file type.
Directory Contents
Dirs: 1 × Files: 16
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
__pycache__
DIR
-
drwxr-xr-x
2026-06-03 06:30:27
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
argparse_utils.py
11.25 KB
lrw-r--r--
2026-05-20 17:45:52
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
dateutil.py
5.63 KB
lrw-r--r--
2026-05-20 17:45:52
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
decorators.py
893 B
lrw-r--r--
2026-05-20 17:45:52
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
fileutil.py
1.14 KB
lrw-r--r--
2026-05-20 17:45:52
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
func.py
15.89 KB
lrw-r--r--
2026-05-20 17:45:52
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
htpasswd.py
2.18 KB
lrw-r--r--
2026-05-20 17:45:52
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
litespeed.py
9.77 KB
lrw-r--r--
2026-05-20 17:45:52
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
logsetup.py
4.50 KB
lrw-r--r--
2026-05-20 17:45:52
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
proctitle.py
4.70 KB
lrw-r--r--
2026-05-20 17:45:52
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
profiler.py
575 B
lrw-r--r--
2026-05-20 17:45:52
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
progress.py
1016 B
lrw-r--r--
2026-05-20 17:45:52
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
sentry.py
6.17 KB
lrw-r--r--
2026-05-20 17:45:52
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
server_status.py
1.31 KB
lrw-r--r--
2026-05-20 17:45:52
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
sizeutil.py
2.59 KB
lrw-r--r--
2026-05-20 17:45:52
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
users_manager.py
2.97 KB
lrw-r--r--
2026-05-20 17:45:52
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.py
219 B
lrw-r--r--
2026-05-20 17:45:52
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).