CasperSecurity

Current Path : /lib/udev/rules.d/
Upload File :
Current File : //lib/udev/rules.d/60-multipath.rules

# Set DM_MULTIPATH_DEVICE_PATH if the device should be handled by multipath
SUBSYSTEM!="block", GOTO="end_mpath"
KERNEL!="sd*|dasd*|nvme*", GOTO="end_mpath"
ACTION=="remove", TEST=="/run/multipath/find_multipaths/$major:$minor", \
	RUN+="/usr/bin/rm -f /run/multipath/find_multipaths/$major:$minor"
ACTION!="add|change", GOTO="end_mpath"

IMPORT{cmdline}="nompath"
ENV{nompath}=="?*", GOTO="end_mpath"
IMPORT{cmdline}="multipath"
ENV{multipath}=="off", GOTO="end_mpath"

ENV{DEVTYPE}!="partition", GOTO="test_dev"
IMPORT{parent}="DM_MULTIPATH_DEVICE_PATH"
ENV{DM_MULTIPATH_DEVICE_PATH}=="1", ENV{ID_FS_TYPE}="none", \
	ENV{SYSTEMD_READY}="0"
GOTO="end_mpath"

LABEL="test_dev"

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

# FIND_MULTIPATHS_WAIT_UNTIL is the timeout (in seconds after the
# epoch).
IMPORT{db}="FIND_MULTIPATHS_WAIT_UNTIL"
ENV{.SAVED_FM_WAIT_UNTIL}="$env{FIND_MULTIPATHS_WAIT_UNTIL}"

# multipath -u needs to know if this device has ever been exported
IMPORT{db}="DM_MULTIPATH_DEVICE_PATH"

# multipath -u sets DM_MULTIPATH_DEVICE_PATH and,
# if "find_multipaths smart", also FIND_MULTIPATHS_WAIT_UNTIL.
IMPORT{program}="$env{MPATH_SBIN_PATH}/multipath -u %k"

# case 1: this is definitely multipath
ENV{DM_MULTIPATH_DEVICE_PATH}=="1", \
	ENV{ID_FS_TYPE}="mpath_member", ENV{SYSTEMD_READY}="0", \
	GOTO="stop_wait"

# case 2: this is definitely not multipath, or timeout has expired
ENV{DM_MULTIPATH_DEVICE_PATH}!="2", \
	GOTO="stop_wait"

# Code below here is only run in "smart" mode.
# multipath -u has indicated this is "maybe" multipath.

# Note that DM_MULTIPATH_DEVICE_PATH has the value 2 at this point.
# This value will never propagate to other rules files, because
# it will be reset to 1 in the "pretend_multipath" section below.

# This shouldn't happen, just in case.
ENV{FIND_MULTIPATHS_WAIT_UNTIL}!="?*", GOTO="end_mpath"

# Be careful not to start the timer twice.
ACTION!="add", GOTO="pretend_mpath"
ENV{.SAVED_FM_WAIT_UNTIL}=="?*", GOTO="pretend_mpath"

# At this point, we are seeing this path for the first time, and it's "maybe" multipath.

# The actual start command for the timer.
#
# The purpose of this command is only to make sure we will receive another
# uevent eventually. *Any* uevent may cause waiting to finish if it either ends
# in case 1-3 above, or if it arrives after FIND_MULTIPATHS_WAIT_UNTIL.
#
# Note that this will try to activate multipathd if it isn't running yet.
# If that fails, the unit starts and expires nonetheless. If multipathd
# startup needs to wait for other services, this wait time will add up with
# the --on-active timeout.
#
# We must trigger an "add" event because LVM2 will only act on those.

RUN+="/usr/bin/systemd-run --unit=cancel-multipath-wait-$kernel --description 'cancel waiting for multipath siblings of $kernel' --no-block --timer-property DefaultDependencies=no --timer-property Conflicts=shutdown.target --timer-property Before=shutdown.target --timer-property AccuracySec=500ms --property DefaultDependencies=no --property Conflicts=shutdown.target --property Before=shutdown.target --property Wants=multipathd.service --property After=multipathd.service --on-active=$env{FIND_MULTIPATHS_WAIT_UNTIL} /bin/udevadm trigger --action=add $sys$devpath"

LABEL="pretend_mpath"
ENV{DM_MULTIPATH_DEVICE_PATH}="1"
ENV{SYSTEMD_READY}="0"
GOTO="end_mpath"

LABEL="stop_wait"
# If timeout hasn't expired but we're not in "maybe" state any more, stop timer
# Do this only once, and only if the timer has been started before
IMPORT{db}="FIND_MULTIPATHS_WAIT_CANCELLED"
ENV{FIND_MULTIPATHS_WAIT_CANCELLED}!="?*", \
	ENV{FIND_MULTIPATHS_WAIT_UNTIL}=="?*", \
	ENV{FIND_MULTIPATHS_WAIT_UNTIL}!="0", \
	ENV{FIND_MULTIPATHS_WAIT_CANCELLED}="1", \
	RUN+="/bin/systemctl stop cancel-multipath-wait-$kernel.timer"

LABEL="end_mpath"
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