mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-23 08:37:33 -04:00
selftests: rds: Add SUDO_USER env variable
This patch modifies rds selftests to use the environment variable SUDO_USER for tcpdumps if it is set. This is needed to avoid chown operations on the vng 9pfs which is not supported. Passing a user listed in sudoers avoids the tcpdump privilege drop which may otherwise create empty pcaps Signed-off-by: Allison Henderson <achender@kernel.org> Link: https://patch.msgid.link/20260504054143.4027538-7-achender@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
committed by
Jakub Kicinski
parent
ad070d9037
commit
d601239dcc
@@ -37,6 +37,12 @@ ENV VARIABLES:
|
||||
the specified --rwdir path for logs to persist on
|
||||
the host.
|
||||
|
||||
SUDO_USER The user name that should be used for tcpdump
|
||||
--relinquish-privileges. Set this to a user
|
||||
belonging to the sudoers group to avoid drop
|
||||
privilege errors with the vng 9p filesystem
|
||||
which may result in empty pcaps
|
||||
|
||||
EXAMPLE:
|
||||
|
||||
# Create a suitable gcov enabled .config
|
||||
@@ -54,6 +60,7 @@ EXAMPLE:
|
||||
# launch the tests in a VM
|
||||
vng -v --rwdir ./ --run . --user root --cpus 4 -- \
|
||||
"export PYTHONPATH=tools/testing/selftests/net/; \
|
||||
export SUDO_USER=example_user; \
|
||||
export RDS_LOG_DIR=tools/testing/selftests/net/rds/rds_logs; \
|
||||
tools/testing/selftests/net/rds/run.sh"
|
||||
|
||||
|
||||
@@ -134,10 +134,15 @@ if logdir is not None:
|
||||
for net in [NET0, NET1]:
|
||||
pcap = logdir+'/'+net+'.pcap'
|
||||
fd, pcap_tmp = tempfile.mkstemp(suffix=".pcap", prefix=f"{net}-", dir="/tmp")
|
||||
|
||||
tcpdump_cmd = ['ip', 'netns', 'exec', net, '/usr/sbin/tcpdump']
|
||||
sudo_user = os.environ.get('SUDO_USER')
|
||||
if sudo_user:
|
||||
tcpdump_cmd.extend(['-Z', sudo_user])
|
||||
tcpdump_cmd.extend(['-i', 'any', '-w', pcap_tmp])
|
||||
|
||||
# pylint: disable-next=consider-using-with
|
||||
p = subprocess.Popen(
|
||||
['ip', 'netns', 'exec', net,
|
||||
'/usr/sbin/tcpdump', '-i', 'any', '-w', pcap_tmp])
|
||||
p = subprocess.Popen(tcpdump_cmd)
|
||||
tcpdump_procs.append((p, pcap_tmp, pcap, fd))
|
||||
|
||||
# simulate packet loss, duplication and corruption
|
||||
|
||||
Reference in New Issue
Block a user