CasperSecurity

Current Path : /lib/udev/rules.d/
Upload File :
Current File : //lib/udev/rules.d/56-dm-mpath.rules

ACTION!="add|change", GOTO="mpath_end"
ENV{DM_UDEV_RULES}!="?*", GOTO="mpath_end"
ENV{DM_UUID}!="mpath-?*", GOTO="mpath_end"

IMPORT{db}="DM_DISABLE_OTHER_RULES_FLAG_OLD"
IMPORT{db}="MPATH_DEVICE_READY"

# If this uevent didn't come from dm, don't try to update the
# device state
ENV{DM_COOKIE}!="?*", ENV{DM_ACTION}!="PATH_*", IMPORT{db}="DM_UDEV_DISABLE_OTHER_RULES_FLAG", IMPORT{db}="DM_NOSCAN", GOTO="scan_import"

ENV{.MPATH_DEVICE_READY_OLD}="$env{MPATH_DEVICE_READY}"

# multipath sets DM_SUBSYSTEM_UDEV_FLAG2 when it reloads a
# table with no active devices. If this happens, mark the
# device not ready
ENV{DM_SUBSYSTEM_UDEV_FLAG2}=="1", ENV{MPATH_DEVICE_READY}="0",\
	GOTO="mpath_action"

# If the last path has failed mark the device not ready
# Note that DM_NR_VALID_PATHS is only set for PATH_FAILED|PATH_REINSTATED
# events.
# This may not be reliable, as events aren't necessarily received in order.
ENV{DM_NR_VALID_PATHS}=="0", ENV{MPATH_DEVICE_READY}="0", GOTO="mpath_action"

ENV{MPATH_SBIN_PATH}="/sbin"
TEST!="$env{MPATH_SBIN_PATH}/multipath", ENV{MPATH_SBIN_PATH}="/usr/sbin"

# Don't run multipath -U during "coldplug" after switching root,
# because paths are just being added to the udev db.
ACTION=="add", ENV{.MPATH_DEVICE_READY_OLD}=="1", GOTO="paths_ok"

# Check the map state directly with multipath -U.
# This doesn't attempt I/O on the device.
PROGRAM=="$env{MPATH_SBIN_PATH}/multipath -U -v1 %k", GOTO="paths_ok"
ENV{MPATH_DEVICE_READY}="0", GOTO="mpath_action"
LABEL="paths_ok"

# Don't mark a device ready on a PATH_FAILED event. even if
# DM_NR_VALID_PATHS is greater than 0. Just keep the existing
# value
ENV{DM_ACTION}=="PATH_FAILED", GOTO="mpath_action"

# This event is either a PATH_REINSTATED or a table reload where
# there are active paths. Mark the device ready
ENV{MPATH_DEVICE_READY}="1"

LABEL="mpath_action"
# DM_SUBSYSTEM_UDEV_FLAG0 is the "RELOAD" flag for multipath subsystem.
# Drop the DM_ACTIVATION flag here as mpath reloads tables if any of its
# paths are lost/recovered. For any stack above the mpath device, this is not
# something that should be reacted upon since it would be useless extra work.
# It's exactly mpath's job to provide *seamless* device access to any of the
# paths that are available underneath.
ENV{DM_SUBSYSTEM_UDEV_FLAG0}=="1", \
	ENV{DM_ACTIVATION}="0", ENV{MPATH_UNCHANGED}="1"

# For path failed or reinstated events, unset DM_ACTIVATION.
# This is similar to the DM_SUBSYSTEM_UDEV_FLAG0 case above.
ENV{DM_ACTION}=="PATH_FAILED|PATH_REINSTATED", \
	ENV{DM_ACTIVATION}="0", ENV{MPATH_UNCHANGED}="1"

# Do not initiate scanning if no path is available,
# otherwise there would be a hang or IO error on access.
# We'd like to avoid this, especially within udev processing.
ENV{MPATH_DEVICE_READY}=="0", ENV{DM_NOSCAN}="1"

# Also skip all foreign rules if no path is available.
# Remember the original value of DM_DISABLE_OTHER_RULES_FLAG
# and restore it back once we have at least one path available.
ENV{MPATH_DEVICE_READY}=="0", ENV{.MPATH_DEVICE_READY_OLD}=="1",\
	ENV{DM_DISABLE_OTHER_RULES_FLAG_OLD}=="",\
	ENV{DM_DISABLE_OTHER_RULES_FLAG_OLD}="$env{DM_UDEV_DISABLE_OTHER_RULES_FLAG}"
ENV{MPATH_DEVICE_READY}=="0", ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}="1"
ENV{MPATH_DEVICE_READY}!="0", ENV{.MPATH_DEVICE_READY_OLD}=="0",\
	ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}="$env{DM_DISABLE_OTHER_RULES_FLAG_OLD}",\
	ENV{DM_DISABLE_OTHER_RULES_FLAG_OLD}="",\
	ENV{DM_ACTIVATION}="1", ENV{MPATH_UNCHANGED}="0"

# The code to check multipath state ends here. We need to set
# properties and symlinks regardless whether the map is usable or
# not. If symlinks get lost, systemd may auto-unmount file systems.

LABEL="scan_import"
ENV{DM_NOSCAN}!="1", GOTO="import_end"
IMPORT{db}="ID_FS_TYPE"
IMPORT{db}="ID_FS_USAGE"
IMPORT{db}="ID_FS_UUID"
IMPORT{db}="ID_FS_UUID_ENC"
IMPORT{db}="ID_FS_LABEL"
IMPORT{db}="ID_FS_LABEL_ENC"
IMPORT{db}="ID_FS_VERSION"

LABEL="import_end"

# Multipath maps should take precedence over their members.
ENV{DM_UDEV_LOW_PRIORITY_FLAG}!="1", OPTIONS+="link_priority=50"

# Set some additional symlinks that typically exist for mpath
# path members, too, and should be overridden.

# kpartx_id is very robust, it works for suspended maps and maps
# with 0 dependencies. It sets DM_TYPE, DM_PART, DM_WWN
TEST=="/lib/udev/kpartx_id", \
	IMPORT{program}=="kpartx_id %M %m $env{DM_UUID}"

ENV{DM_TYPE}=="?*", ENV{DM_SERIAL}=="?*", \
	SYMLINK+="disk/by-id/$env{DM_TYPE}-$env{DM_SERIAL}"
ENV{DM_WWN}=="?*", SYMLINK+="disk/by-id/wwn-$env{DM_WWN}"

LABEL="mpath_end"
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY