Age | Commit message (Collapse) | Author | |
---|---|---|---|
2024-05-20 | syscalls: use >= 3.10 support for eventfds in os module | Helmut Grohne | |
2024-05-18 | examples/netnsslirp.py: simplify termination of slirp4netns | Helmut Grohne | |
2024-05-17 | add a splice syscall wrapper | Helmut Grohne | |
2024-05-17 | add prctl_set_child_subreaper | Helmut Grohne | |
2024-05-17 | populate_dev: also create std{in,out,err} symlinks | Helmut Grohne | |
When booting systemd, it'll create these symlinks, but when doing an application container, nothing does this and we risk creating regular files there. | |||
2024-05-10 | Revert "examples/chroottar.py: harden against tars with high uids" | Helmut Grohne | |
This reverts commit a169f51420795a212c3226f455e783ab8ac5cf47. We really deal with two user namespaces. The initial/parent process maps the target id range plus the current user id. The child process that executes the workload only maps the target id range without the current user id. The child opens the tar file while it still is in the initial namespace, then unshares and once it only has the subid range mapped, it performs the extraction. No clamping is necessary at this point. The parent process maps additionally maps the current id in order to write the tar file. | |||
2024-05-09 | add linuxnamespaces.tarinfo.XAttrTarFile | Helmut Grohne | |
This is a mixin subclass for TarFile that enables it to restore and apply linux extended attributes as PAX headers in the SCHILY.xattr.* format. As a consequence, this enables us to process tar archives containing file system capabilities. | |||
2024-05-09 | add linuxnamespaces.tarutils | Helmut Grohne | |
Move the generic tar utilities from the chroottar.py example into a linuxnamespaces module as dealing with tar archives is a fairly common thing when dealing with namespaces. | |||
2024-05-07 | mount: allow data argument to be a list | Helmut Grohne | |
2024-05-06 | chroottar.py: don't raise NotImplementedError for misuse | Helmut Grohne | |
The mode actually can only have these three distinct literals. While more complex modes can get passed to TarFile.open, they're decomposed there and only of these three is passed to the compressor openers. | |||
2024-05-06 | syscalls: allow logging of syscalls | Helmut Grohne | |
2024-05-06 | chroottar.py: implement Tarfile.zstopen for fileobj | Helmut Grohne | |
zstandard.open actually consumes file objects. Hence there is little benefit in not implementing the passing of a fileobj even though we don't use it here. | |||
2024-05-06 | examples/cgroup.py: use the assigned cgroup | Helmut Grohne | |
Fixes: b0874c6086f1 ("lift the dbus functionality from the cgroup example") | |||
2024-04-23 | lift the dbus functionality from the cgroup example | Helmut Grohne | |
2024-04-19 | examples/cgroup.py: support jeepney as an alternative to ravel | Helmut Grohne | |
2024-04-19 | examples/cgroup.py: use asyncio.run | Helmut Grohne | |
2024-04-19 | examples/cgroup.py: do not fail when ravel is unavailable | Helmut Grohne | |
2024-04-18 | examples/cgroup.py: we should pass Delegate=true | Helmut Grohne | |
2024-04-18 | examples/cgroup.py: extract a context manager waiting for systemd jobs | Helmut Grohne | |
2024-04-04 | avoid hard coding the soname of the libc | Helmut Grohne | |
Passing None as name also yields libc functions. | |||
2024-04-04 | add method AtLocation.as_emptypath for cloning a location | Helmut Grohne | |
2024-04-04 | add an example for unsharing a PID namespace | Helmut Grohne | |
2024-04-04 | add syscall wrapper for prctl(PR_SET_PDEATHSIG, ...) | Helmut Grohne | |
2024-04-04 | add function populate_proc | Helmut Grohne | |
2024-04-04 | document security implications of populate_* functions | Helmut Grohne | |
2024-04-03 | declare pytest-forked dependency that is in use already | Helmut Grohne | |
2024-04-03 | tests: avoid need for a type annotation | Helmut Grohne | |
mypy wants type annotations for every def. As we only call another function, we may pass it to the decorator directly and shut up mypy. | |||
2024-04-03 | add basic tests for AtLocation | Helmut Grohne | |
2024-04-03 | AtLocation.walk: add support for AT_EMPTY_PATH | Helmut Grohne | |
2024-04-03 | AtLocation.walk: emit nofllow flag when follow_symlinks=False | Helmut Grohne | |
2024-04-03 | AtLocation.readlink: require AT_SYMLINK_NOFOLLOW | Helmut Grohne | |
It does not make sense to read a link after having followed it. | |||
2024-04-02 | improve AtLocation.join semantics | Helmut Grohne | |
Also allow joining an AtLocation. When doing that note that any kind of absolute location object (absolute path without fd and any location with an fd) results in just that latter location just like os.path.join returns the latter path when it is absolute. Fixes: 034f732a1af4 ("initial checkin") | |||
2024-04-02 | a few formatting and typo fixes | Helmut Grohne | |
2024-04-02 | add documentation regarding resource management of AtLocations | Helmut Grohne | |
2024-04-02 | fix logic error in AtLocation.stat | Helmut Grohne | |
Fixes: 1c265b6e11c3 ("add os.stat wrapper AtLocation.stat") | |||
2024-03-24 | AtLocation.mkdir: support optional arguments from pathlib | Helmut Grohne | |
2024-03-22 | add convenience functions for stat to AtLocationLike | Helmut Grohne | |
These are the is_* family and exists all from pathlib.Path. | |||
2024-03-22 | add os.stat wrapper AtLocation.stat | Helmut Grohne | |
2024-03-16 | slightly simplify tests | Helmut Grohne | |
2024-03-16 | add an asyncio variant of run_in_fork | Helmut Grohne | |
2024-03-14 | rename AtLocation.symlink to symlink_to | Helmut Grohne | |
This mirrors what was done for pathlib.Path to avoid confusion about argument order. | |||
2024-03-12 | work around mypy misdetection on bookworm | Helmut Grohne | |
2024-03-11 | add method AtLocation.is_absolute | Helmut Grohne | |
This is similar to pathlib.Path.is_absolute. | |||
2024-03-07 | add AtLocation.rename method wrapping os.rename | Helmut Grohne | |
2024-03-07 | add AtLocation.link method wrapping os.link | Helmut Grohne | |
2024-03-03 | add function for prctl(PR_CAP_AMBIENT, PR_CAP_AMBIENT_RAISE, ...) | Helmut Grohne | |
2024-03-03 | implement repr for AtLocation | Helmut Grohne | |
2024-03-02 | fix typos | Jakub Wilk | |
2024-03-02 | examples/chroottar.py: make pylint happier | Helmut Grohne | |
2024-03-01 | add rudimentary prctl syscall wrapper | Helmut Grohne | |