Linux newlinux5.pouyasazan.org 3.10.0-962.3.2.lve1.5.60.el7.x86_64 #1 SMP Fri Jul 23 07:07:00 EDT 2021 x86_64
LiteSpeed
Server IP : 88.99.66.243 & Your IP : 216.73.216.178
Domains :
Cant Read [ /etc/named.conf ]
User : wdbbsgxf
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
lib /
python2.7 /
site-packages /
Delete
Unzip
Name
Size
Permission
Date
Action
Babel-0.9.6-py2.7.egg-info
[ DIR ]
drwxr-xr-x
2021-08-25 16:50
ConfigArgParse-0.11.0-py2.7.egg-info
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
Jinja2-2.7.2-py2.7.egg-info
[ DIR ]
drwxr-xr-x
2021-08-25 16:50
_dummy_thread
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
_markerlib
[ DIR ]
drwxr-xr-x
2021-08-24 16:58
_markupbase
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
_thread
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
acme
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
acme-1.11.0-py2.7.egg-info
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
babel
[ DIR ]
drwxr-xr-x
2021-08-25 16:50
backports
[ DIR ]
drwxr-xr-x
2021-08-24 16:58
builtins
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
certbot
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
certbot-1.11.0-py2.7.egg-info
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
chardet
[ DIR ]
drwxr-xr-x
2021-08-24 16:58
chardet-2.2.1-py2.7.egg-info
[ DIR ]
drwxr-xr-x
2021-08-24 16:58
clcommon
[ DIR ]
drwxr-xr-x
2021-08-25 16:50
copyreg
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
decorator-3.4.0-py2.7.egg-info
[ DIR ]
drwxr-xr-x
2021-08-24 16:07
distro-1.5.0-py2.7.egg-info
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
enum
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
firewall
[ DIR ]
drwxr-xr-x
2021-08-24 17:03
future
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
future-0.18.2-py2.7.egg-info
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
html
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
http
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
idna
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
idna-2.4-py2.7.egg-info
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
iniparse
[ DIR ]
drwxr-xr-x
2021-08-24 16:07
isc
[ DIR ]
drwxr-xr-x
2025-05-16 23:52
jinja2
[ DIR ]
drwxr-xr-x
2021-08-25 16:50
josepy
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
josepy-1.3.0-py2.7.egg-info
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
kitchen
[ DIR ]
drwxr-xr-x
2021-08-24 16:58
kitchen-1.1.1-py2.7.egg-info
[ DIR ]
drwxr-xr-x
2021-08-24 16:58
libfuturize
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
libpasteurize
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
mock-1.0.1-py2.7.egg-info
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
ndg
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
ndg_httpsclient-0.3.2-py2.7.egg-info
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
parsedatetime
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
parsedatetime-2.4-py2.7.egg-info
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
past
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
ply
[ DIR ]
drwxr-xr-x
2021-08-24 16:58
procfs
[ DIR ]
drwxr-xr-x
2021-08-24 17:03
pyRFC3339-1.1-py2.7.egg-info
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
pyasn1
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
pyasn1-0.1.9-py2.7.egg-info
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
pycparser
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
pycparser-2.14-py2.7.egg-info
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
pyrfc3339
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
pytz
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
pytz-2016.10-py2.7.egg-info
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
pyudev
[ DIR ]
drwxr-xr-x
2021-08-24 16:07
pyudev-0.15-py2.7.egg-info
[ DIR ]
drwxr-xr-x
2021-08-24 16:07
queue
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
reprlib
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
requests
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
requests_toolbelt
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
requests_toolbelt-0.8.0-py2.7.egg-info
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
rhn
[ DIR ]
drwxr-xr-x
2021-08-25 16:50
rpmUtils
[ DIR ]
drwxr-xr-x
2024-06-16 05:57
setuptools
[ DIR ]
drwxr-xr-x
2021-08-24 16:58
setuptools-0.9.8-py2.7.egg-info
[ DIR ]
drwxr-xr-x
2021-08-24 16:58
six-1.9.0-py2.7.egg-info
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
slip
[ DIR ]
drwxr-xr-x
2021-08-24 16:07
socketserver
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
tkinter
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
tuned
[ DIR ]
drwxr-xr-x
2024-06-16 05:57
urlgrabber
[ DIR ]
drwxr-xr-x
2021-08-24 17:04
urllib3
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
urllib3-1.10.2-py2.7.egg-info
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
winreg
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
xmlrpc
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
yum
[ DIR ]
drwxr-xr-x
2024-06-16 06:04
yumutils
[ DIR ]
drwxr-xr-x
2021-08-24 16:58
zope
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
zope.component-4.1.0-py2.7.egg-info
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
zope.event-4.0.3-py2.7.egg-info
[ DIR ]
drwxr-xr-x
2022-02-05 00:54
IPy-0.75-py2.7.egg-info
9.83
KB
-rw-r--r--
2014-06-10 11:48
IPy.py
50.07
KB
-rw-r--r--
2011-04-12 16:23
IPy.pyc
39.92
KB
-rw-r--r--
2014-06-10 11:48
IPy.pyo
39.92
KB
-rw-r--r--
2014-06-10 11:48
backports.ssl_match_hostname-3.5.0.1-py2.7.egg-info
3.96
KB
-rw-r--r--
2018-04-11 06:55
clsudo.py
12.65
KB
-rw-r--r--
2017-06-01 20:44
clsudo.pyc
11.02
KB
-rw-r--r--
2017-06-01 20:44
clsudo.pyo
11.02
KB
-rw-r--r--
2017-06-01 20:44
configargparse.py
40.35
KB
-rw-r--r--
2016-09-05 05:10
configargparse.pyc
32.46
KB
-rw-r--r--
2020-05-07 09:46
configargparse.pyo
32.46
KB
-rw-r--r--
2020-05-07 09:46
configobj-4.7.2-py2.7.egg-info
2.08
KB
-rw-r--r--
2014-06-10 11:27
configobj.py
86.1
KB
-rw-r--r--
2010-02-28 01:06
configobj.pyc
64.72
KB
-rw-r--r--
2014-06-10 11:27
configobj.pyo
64.72
KB
-rw-r--r--
2014-06-10 11:27
decorator.py
10.39
KB
-rw-r--r--
2012-10-18 12:19
decorator.pyc
8.36
KB
-rw-r--r--
2014-06-10 04:15
decorator.pyo
8.32
KB
-rw-r--r--
2014-06-10 04:15
distro.py
42.61
KB
-rw-r--r--
2020-03-31 01:40
distro.pyc
39.01
KB
-rw-r--r--
2021-10-11 10:19
distro.pyo
38.92
KB
-rw-r--r--
2021-10-11 10:19
easy_install.py
126
B
-rw-r--r--
2013-07-15 21:42
easy_install.pyc
315
B
-rw-r--r--
2017-08-02 14:48
easy_install.pyo
315
B
-rw-r--r--
2017-08-02 14:48
enum34-1.0.4-py2.7.egg-info
28.04
KB
-rw-r--r--
2015-11-24 07:00
hwdata.py
5.89
KB
-rw-r--r--
2012-03-02 19:52
hwdata.pyc
4.38
KB
-rw-r--r--
2014-09-17 19:32
hwdata.pyo
4.38
KB
-rw-r--r--
2014-09-17 19:32
iniparse-0.4-py2.7.egg-info
1.06
KB
-rw-r--r--
2014-06-10 02:34
ipaddress-1.0.16-py2.7.egg-info
783
B
-rw-r--r--
2016-11-05 20:07
ipaddress.py
78.03
KB
-rw-r--r--
2015-12-28 20:39
ipaddress.pyc
73.75
KB
-rw-r--r--
2016-11-05 20:07
ipaddress.pyo
73.57
KB
-rw-r--r--
2016-11-05 20:07
isc-2.0-py2.7.egg-info
267
B
-rw-r--r--
2025-03-04 13:53
mock.py
73.76
KB
-rw-r--r--
2012-11-06 00:49
mock.pyc
66.98
KB
-rw-r--r--
2018-11-06 08:46
mock.pyo
66.98
KB
-rw-r--r--
2018-11-06 08:46
ndg_httpsclient-0.3.2-py2.7-nspkg.pth
298
B
-rw-r--r--
2014-10-31 13:34
pciutils-1.7.3-py2.7.egg-info
267
B
-rw-r--r--
2014-09-17 19:32
pkg_resources.py
98.74
KB
-rw-r--r--
2013-07-15 21:42
pkg_resources.pyc
105.5
KB
-rw-r--r--
2017-08-02 14:48
pkg_resources.pyo
105.47
KB
-rw-r--r--
2017-08-02 14:48
ply-3.4-py2.7.egg-info
900
B
-rw-r--r--
2017-08-03 05:16
pyparsing-1.5.6-py2.7.egg-info
670
B
-rw-r--r--
2014-06-10 02:45
pyparsing.py
151.79
KB
-rw-r--r--
2014-06-10 02:45
pyparsing.pyc
145.41
KB
-rw-r--r--
2014-06-10 02:45
pyparsing.pyo
145.41
KB
-rw-r--r--
2014-06-10 02:45
python_linux_procfs-0.4.9-py2.7.egg-info
350
B
-rw-r--r--
2019-08-09 06:38
requests-2.6.0-py2.7.egg-info
39.41
KB
-rw-r--r--
2020-06-30 06:43
rhnlib-2.5.65-py2.7.egg-info
345
B
-rw-r--r--
2018-10-30 22:06
secureio.py
9.01
KB
-rw-r--r--
2017-06-01 20:44
secureio.pyc
4.58
KB
-rw-r--r--
2017-06-01 20:44
secureio.pyo
4.58
KB
-rw-r--r--
2017-06-01 20:44
six.py
28.97
KB
-rw-r--r--
2015-01-02 20:03
six.pyc
29.01
KB
-rw-r--r--
2015-11-25 00:16
six.pyo
29.01
KB
-rw-r--r--
2015-11-25 00:16
slip-0.4.0-py2.7.egg-info
196
B
-rw-r--r--
2018-04-11 06:19
slip.dbus-0.4.0-py2.7.egg-info
269
B
-rw-r--r--
2018-04-11 06:19
urlgrabber-3.10-py2.7.egg-info
2.21
KB
-rw-r--r--
2020-04-01 08:44
validate.py
45.22
KB
-rw-r--r--
2014-06-10 11:27
validate.pyc
45.62
KB
-rw-r--r--
2014-06-10 11:27
validate.pyo
45.62
KB
-rw-r--r--
2014-06-10 11:27
zope.component-4.1.0-py2.7-nspkg.pth
301
B
-rw-r--r--
2019-03-08 07:27
zope.event-4.0.3-py2.7-nspkg.pth
301
B
-rw-r--r--
2014-10-15 17:14
Save
Rename
#!/usr/bin/python # #Copyright (c) 2010 Cloud Linux LTD #All rights reserved. # #Redistribution and use in source and binary forms, with or without #modification, are permitted provided that the following conditions #are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above # copyright notice, this list of conditions and the following # disclaimer in the documentation and/or other materials provided # with the distribution. # * The names of its contributors may not be used to endorse or # promote products derived from this software without specific # prior written permission. # #THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS #"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT #LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS #FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE #COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, #INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, #BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; #LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER #CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT #LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN #ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE #POSSIBILITY OF SUCH DAMAGE. # # This module provides functions for secure I/O and filesystem operations import os from ctypes import * libc = cdll.LoadLibrary("libc.so.6") liblve = cdll.LoadLibrary("liblve.so.0") # --- libc functions ----------------------------------------------- ino_t = c_long off_t = c_long class DIRENTRY(Structure): _fields_ = [ ('d_ino', ino_t), # inode number ('d_off', off_t), # offset to the next dirent ('d_reclen', c_ushort), # length of this record ('d_type', c_ubyte), # type of file; not supported by all file system types ('d_name', c_char * 256), # filename ] DIRENTRY_P = POINTER(DIRENTRY) fchown = libc.fchown fchown.argtypes = [c_int, c_int, c_int] fchown.restype = c_int fchmod = libc.fchmod fchmod.argtypes = [c_int, c_int] fchmod.restype = c_int fdopendir = libc.fdopendir # accepts file/dir descriptor (integer) fdopendir.argtypes = [c_int] # returns pointer to DIR structure fdopendir.restype = c_void_p readdir = libc.readdir # accepts pointer to DIR structure readdir.argtypes = [c_void_p] # returns pointer to DIRENTRY structure readdir.restype = DIRENTRY_P rewinddir = libc.rewinddir # accepts pointer to DIR structure rewinddir.argtypes = [c_void_p] # returns void rewinddir.restype = None closedir = libc.closedir # accepts pointer to DIR structure closedir.argtypes = [c_void_p] closedir.restype = c_int # --- liblve functions ----------------------------------------------- # Opens path for reading not following symlinks and verifies that opened path is inside parent_path # Returns: # descriptor if successful # -1 if path does not exist or is a symlink # -2 if opened path is NOT inside parent_path or cannot be determined # accepts path, parent_path open_not_symlink = liblve.open_not_symlink open_not_symlink.argtypes = [c_char_p, c_char_p] open_not_symlink.restype = c_int # Closes descriptor (if it is not equal -1) # accepts file/dir descriptor (integer) liblve.closefd.argtypes = [c_int] # returns void liblve.closefd.restype = None # Tries to read first directory entry in order to ensure that descriptor is valid # Returns 0 if reading succeeded or -1 if error has occured check_dir = liblve.check_dir # accepts descriptor check_dir.argtypes = [c_int] check_dir.restype = c_int # Checks if path is a directory (in secure manner) # Also opens path (if descriptor fd == -1) and then checks that opened path is inside parent_path # Returns descriptor if path refers to directory # Returns -1 if path does not exist or is not a directory # Returns -2 if opened path is NOT inside parent_path or cannot be determined isdir = liblve.isdir # accepts path, descriptor, parent_path isdir.argtypes = [c_char_p, c_int, c_char_p] isdir.restype = c_int # Sets permissions to directory (in secure manner) # Returns descriptor if successful # Returns -1 if error has occured # Returns -2 if opened path is NOT inside parent_path or cannot be determined # accepts: const char *path, mode_t perm, int fd, const char *parent_path liblve.set_perm_dir_secure.argtypes = [c_char_p, c_int, c_int, c_char_p] liblve.set_perm_dir_secure.restype = c_int # Sets owner and group of directory (in secure manner) # Returns descriptor if successful # Returns -1 if error has occured # Returns -2 if opened path is NOT inside parent_path or cannot be determined # accepts: const char *path, uid_t uid, gid_t gid, int fd, const char *parent_path liblve.set_owner_dir_secure.argtypes = [c_char_p, c_int, c_int, c_int, c_char_p] liblve.set_owner_dir_secure.restype = c_int # Creates directory if it does not exist, sets permissions/owner otherwise # Returns descriptor if successful # Returns -1 if error has occured # accepts: const char *path, mode_t perm, uid_t uid, gid_t gid, int fd, const char *parent_path liblve.create_dir_secure.argtypes = [c_char_p, c_int, c_int, c_int, c_int, c_char_p] liblve.create_dir_secure.restype = c_int # Recursive directory creation function # Returns 0 if successful # Returns -1 if error has occured # accepts: const char *path, mode_t perm, uid_t uid, gid_t gid, const char *parent_path liblve.makedirs_secure.argtypes = [c_char_p, c_int, c_int, c_int, c_char_p] liblve.makedirs_secure.restype = c_int # Writes absolute path pointed by descriptor fd to buffer *buf # Returns buf if successful # Returns NULL if error has occured get_path_from_descriptor = liblve.get_path_from_descriptor get_path_from_descriptor.argtypes = [c_int, c_char_p] get_path_from_descriptor.restype = c_char_p # Returns 1 if subdir is subdirectory of dir, 0 otherwise is_subdir = liblve.is_subdir is_subdir.argtypes = [c_char_p, c_char_p] is_subdir.restype = c_int # Returns list of entries of directory pointed by descriptor def flistdir(fd): # Duplicate descriptor, because closedir() closes descriptor associated with directory stream fd2 = os.dup(fd) # Open directory stream dirp = fdopendir(fd2) if not dirp: raise Exception("fdopendir error") # Reset position of directory stream # (so it will be possible to read content of directory multiple times # via other descriptors that refer to the directory) rewinddir(dirp) dirlist = [] while True: entryp = readdir(dirp) if not entryp: break entry = entryp.contents dirlist.append(entry.d_name) rewinddir(dirp) closedir(dirp) return dirlist def closefd(fd): if fd is not None: try: os.close(fd) except OSError: pass # Sets permissions to directory (in secure manner) # Returns descriptor if successful # Returns None if error has occured def set_perm_dir_secure(path, perm, parent_path, fd = None, logger = None): if fd == None: fd = -1 fd = liblve.set_perm_dir_secure(path, perm, fd, parent_path) if fd > 0: return fd if logger is not None: logger('Error: failed to set permissions of directory ' + path, False, True) return None # Sets owner and group of directory (in secure manner) # Returns descriptor if successful # Returns None if error has occured def set_owner_dir_secure(path, uid, gid, parent_path, fd = None, logger = None): if fd == None: fd = -1 fd = liblve.set_owner_dir_secure(path, uid, gid, fd, parent_path) if fd > 0: return fd if logger is not None: logger('Error: failed to set owner of directory ' + path, False, True) return None # Creates directory if it does not exist, sets permissions/owner otherwise # Returns descriptor if successful # Returns None if error has occured def create_dir_secure(path, perm, uid, gid, parent_path, fd = None, logger = None): if fd == None: fd = -1 fd = liblve.create_dir_secure(path, perm, uid, gid, fd, parent_path) if fd > 0: return fd if logger is not None: logger('Error: failed to create directory ' + path, False, True) return None # Recursive directory creation function # Returns 0 if successful # Returns -1 if error has occured def makedirs_secure(path, perm, uid, gid, parent_path, logger = None): res = liblve.makedirs_secure(path, perm, uid, gid, parent_path) if res and logger: logger('Error: failed to create directory ' + path, False, True) return res def set_capability(clear=False): """ Set CAP_SYS_RESOURCE capability :param bool clear: Set on if it's true, set off otherwise :return: 0 for success, -1 otherwise :rtype: int """ if clear: return liblve.disable_quota_capability() else: return liblve.enable_quota_capability() def change_uid(uid): """ Change effective uid of current process and set CAP_SYS_RESOURCE capbality to prevent "Disk quota exceeded" error :param int euid: User ID to set it as current effective UID :return: 0 if capability was set successfuly, -1 otherwise :rtype: int """ os.setuid(uid) return set_capability()