]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
selftests: rds: Add SUDO_USER env variable
authorAllison Henderson <achender@kernel.org>
Mon, 4 May 2026 05:41:39 +0000 (22:41 -0700)
committerJakub Kicinski <kuba@kernel.org>
Wed, 6 May 2026 02:19:54 +0000 (19:19 -0700)
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>
tools/testing/selftests/net/rds/README.txt
tools/testing/selftests/net/rds/test.py

index e629e08f04ef18e245e2bcd9517b74ef95e0863f..295dc82c0770fee5d781ee56317c2934bfcc311d 100644 (file)
@@ -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"
 
index 0ece8324d25509d2a58133d56a73bc50691cbf88..7a3616ac288fa209bb61b19b8b8d1074d9cff086 100755 (executable)
@@ -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