mirror of https://github.com/containers/podman.git
Merge pull request #8669 from giuseppe/unmask-also-cover-ro-paths
security: honor systempaths=unconfined for ro paths
This commit is contained in:
commit
059c2ee739
|
@ -854,8 +854,8 @@ Security Options
|
|||
- `seccomp=profile.json` : White listed syscalls seccomp Json file to be used as a seccomp filter
|
||||
|
||||
- `unmask=ALL or /path/1:/path/2` : Paths to unmask separated by a colon. If set to **ALL**, it will
|
||||
unmask all the paths that are masked by default.
|
||||
The default masked paths are **/proc/acpi, /proc/kcore, /proc/keys, /proc/latency_stats, /proc/sched_debug, /proc/scsi, /proc/timer_list, /proc/timer_stats, /sys/firmware, and /sys/fs/selinux.**
|
||||
unmask all the paths that are masked or made read only by default.
|
||||
The default masked paths are **/proc/acpi, /proc/kcore, /proc/keys, /proc/latency_stats, /proc/sched_debug, /proc/scsi, /proc/timer_list, /proc/timer_stats, /sys/firmware, and /sys/fs/selinux.** The default paths that are read only are **/proc/asound, /proc/bus, /proc/fs, /proc/irq, /proc/sys, /proc/sysrq-trigger**.
|
||||
|
||||
- `proc-opts=OPTIONS` : Comma separated list of options to use for the /proc mount. More details for the
|
||||
possible mount options are specified at **proc(5)** man page.
|
||||
|
|
|
@ -896,8 +896,8 @@ Security Options
|
|||
- **proc-opts**=_OPTIONS_ : Comma separated list of options to use for the /proc mount. More details
|
||||
for the possible mount options are specified at **proc(5)** man page.
|
||||
- **unmask**=_ALL_ or _/path/1:/path/2_: Paths to unmask separated by a colon. If set to **ALL**, it will
|
||||
unmask all the paths that are masked by default.
|
||||
The default masked paths are **/proc/acpi, /proc/kcore, /proc/keys, /proc/latency_stats, /proc/sched_debug, /proc/scsi, /proc/timer_list, /proc/timer_stats, /sys/firmware, and /sys/fs/selinux.**
|
||||
unmask all the paths that are masked or made read only by default.
|
||||
The default masked paths are **/proc/acpi, /proc/kcore, /proc/keys, /proc/latency_stats, /proc/sched_debug, /proc/scsi, /proc/timer_list, /proc/timer_stats, /sys/firmware, and /sys/fs/selinux.**. The default paths that are read only are **/proc/asound**, **/proc/bus**, **/proc/fs**, **/proc/irq**, **/proc/sys**, **/proc/sysrq-trigger**.
|
||||
|
||||
Note: Labeling can be disabled for all containers by setting **label=false** in the **containers.conf**(5) file.
|
||||
|
||||
|
|
|
@ -167,12 +167,6 @@ func BlockAccessToKernelFilesystems(privileged, pidModeIsHost bool, mask, unmask
|
|||
g.AddLinuxMaskedPaths(mp)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if pidModeIsHost && rootless.IsRootless() {
|
||||
return
|
||||
}
|
||||
|
||||
for _, rp := range []string{
|
||||
"/proc/asound",
|
||||
"/proc/bus",
|
||||
|
@ -181,9 +175,16 @@ func BlockAccessToKernelFilesystems(privileged, pidModeIsHost bool, mask, unmask
|
|||
"/proc/sys",
|
||||
"/proc/sysrq-trigger",
|
||||
} {
|
||||
if !util.StringInSlice(rp, unmask) {
|
||||
g.AddLinuxReadonlyPaths(rp)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if pidModeIsHost && rootless.IsRootless() {
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// mask the paths provided by the user
|
||||
for _, mp := range mask {
|
||||
|
|
|
@ -272,6 +272,13 @@ var _ = Describe("Podman run", func() {
|
|||
session.WaitWithDefaultTimeout()
|
||||
Expect(session.OutputToString()).To(Not(BeEmpty()))
|
||||
Expect(session.ExitCode()).To(Equal(0))
|
||||
|
||||
session = podmanTest.Podman([]string{"run", "-d", "--name=maskCtr5", "--security-opt", "systempaths=unconfined", ALPINE, "grep", "/proc", "/proc/self/mounts"})
|
||||
session.WaitWithDefaultTimeout()
|
||||
Expect(session.ExitCode()).To(Equal(0))
|
||||
stdoutLines := session.OutputToStringArray()
|
||||
Expect(stdoutLines).Should(HaveLen(1))
|
||||
|
||||
})
|
||||
|
||||
It("podman run seccomp test", func() {
|
||||
|
|
Loading…
Reference in New Issue