test(p7-privilege): skip copy-as refusal test when workspace is not traversable by the unprivileged uid
CI / lint (push) Successful in 1m30s
CI / sanitizers (undefined) (push) Successful in 58s
CI / sanitizers (address) (push) Successful in 58s
CI / fuzz-build (push) Successful in 23s
CI / coverage (push) Successful in 47s
CI / valgrind (push) Successful in 39s
CI / build-and-test (push) Successful in 5m3s
CI / lint (push) Successful in 1m30s
CI / sanitizers (undefined) (push) Successful in 58s
CI / sanitizers (address) (push) Successful in 58s
CI / fuzz-build (push) Successful in 23s
CI / coverage (push) Successful in 47s
CI / valgrind (push) Successful in 39s
CI / build-and-test (push) Successful in 5m3s
This commit is contained in:
@@ -5207,6 +5207,17 @@ class TestCopyAs:
|
|||||||
if os.geteuid() == 0:
|
if os.geteuid() == 0:
|
||||||
if shutil.which("setpriv") is None:
|
if shutil.which("setpriv") is None:
|
||||||
pytest.skip("root runner without setpriv cannot start an unprivileged receiver")
|
pytest.skip("root runner without setpriv cannot start an unprivileged receiver")
|
||||||
|
# The unprivileged receiver must execute the server binary out of the
|
||||||
|
# test workspace, so the workspace path has to be traversable by uid
|
||||||
|
# 65534. A checkout under a 0700 directory (e.g. /root) is not; skip
|
||||||
|
# rather than fail — CI runs from a traversable workspace and still
|
||||||
|
# exercises this behavior.
|
||||||
|
probe = subprocess.run(
|
||||||
|
["setpriv", "--reuid=65534", "--regid=65534", "--clear-groups",
|
||||||
|
"test", "-x", os.path.abspath(SERVER_CMD[0])],
|
||||||
|
stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
|
||||||
|
if probe.returncode != 0:
|
||||||
|
pytest.skip("workspace is not traversable by the unprivileged receiver uid")
|
||||||
os.chmod(dest, 0o777)
|
os.chmod(dest, 0o777)
|
||||||
proc, port = _start_captured_server(
|
proc, port = _start_captured_server(
|
||||||
prefix=["setpriv", "--reuid=65534", "--regid=65534", "--clear-groups"])
|
prefix=["setpriv", "--reuid=65534", "--regid=65534", "--clear-groups"])
|
||||||
|
|||||||
Reference in New Issue
Block a user