|
![](https://seccdn.libravatar.org/avatar/4d04624359573e2b0c7cbadd0b29ed348b7bc9ee5235bfc3107aa0e4f4f2ae72?s=16&d=retro) |
a01344b |
#!/bin/bash
|
|
![](https://seccdn.libravatar.org/avatar/4d04624359573e2b0c7cbadd0b29ed348b7bc9ee5235bfc3107aa0e4f4f2ae72?s=16&d=retro) |
a01344b |
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
|
|
![](https://seccdn.libravatar.org/avatar/4d04624359573e2b0c7cbadd0b29ed348b7bc9ee5235bfc3107aa0e4f4f2ae72?s=16&d=retro) |
a01344b |
# SPDX-License-Identifier: GPLv2
|
|
![](https://seccdn.libravatar.org/avatar/4d04624359573e2b0c7cbadd0b29ed348b7bc9ee5235bfc3107aa0e4f4f2ae72?s=16&d=retro) |
a01344b |
# Copyright (c) 2021 Red Hat, Inc.
|
|
![](https://seccdn.libravatar.org/avatar/4d04624359573e2b0c7cbadd0b29ed348b7bc9ee5235bfc3107aa0e4f4f2ae72?s=16&d=retro) |
a01344b |
# Author: Ondrej Mosnacek <omosnace@redhat.com>
|
|
![](https://seccdn.libravatar.org/avatar/4d04624359573e2b0c7cbadd0b29ed348b7bc9ee5235bfc3107aa0e4f4f2ae72?s=16&d=retro) |
a01344b |
|
|
![](https://seccdn.libravatar.org/avatar/4d04624359573e2b0c7cbadd0b29ed348b7bc9ee5235bfc3107aa0e4f4f2ae72?s=16&d=retro) |
a01344b |
# Include Beakerlib environment
|
|
![](https://seccdn.libravatar.org/avatar/4d04624359573e2b0c7cbadd0b29ed348b7bc9ee5235bfc3107aa0e4f4f2ae72?s=16&d=retro) |
a01344b |
. /usr/share/beakerlib/beakerlib.sh || exit 1
|
|
![](https://seccdn.libravatar.org/avatar/4d04624359573e2b0c7cbadd0b29ed348b7bc9ee5235bfc3107aa0e4f4f2ae72?s=16&d=retro) |
a01344b |
|
|
![](https://seccdn.libravatar.org/avatar/4d04624359573e2b0c7cbadd0b29ed348b7bc9ee5235bfc3107aa0e4f4f2ae72?s=16&d=retro) |
a01344b |
function boolGet() {
|
|
![](https://seccdn.libravatar.org/avatar/4d04624359573e2b0c7cbadd0b29ed348b7bc9ee5235bfc3107aa0e4f4f2ae72?s=16&d=retro) |
a01344b |
getsebool "$1" | cut -d ' ' -f 3
|
|
![](https://seccdn.libravatar.org/avatar/4d04624359573e2b0c7cbadd0b29ed348b7bc9ee5235bfc3107aa0e4f4f2ae72?s=16&d=retro) |
a01344b |
}
|
|
![](https://seccdn.libravatar.org/avatar/4d04624359573e2b0c7cbadd0b29ed348b7bc9ee5235bfc3107aa0e4f4f2ae72?s=16&d=retro) |
a01344b |
function boolSet() {
|
|
![](https://seccdn.libravatar.org/avatar/4d04624359573e2b0c7cbadd0b29ed348b7bc9ee5235bfc3107aa0e4f4f2ae72?s=16&d=retro) |
a01344b |
getsebool "$1" &>/dev/null || return 0
|
|
![](https://seccdn.libravatar.org/avatar/4d04624359573e2b0c7cbadd0b29ed348b7bc9ee5235bfc3107aa0e4f4f2ae72?s=16&d=retro) |
a01344b |
setsebool "$1" "$2" || return 1
|
|
![](https://seccdn.libravatar.org/avatar/4d04624359573e2b0c7cbadd0b29ed348b7bc9ee5235bfc3107aa0e4f4f2ae72?s=16&d=retro) |
a01344b |
[ "$(boolGet "$1")" == "$2" ]
|
|
![](https://seccdn.libravatar.org/avatar/4d04624359573e2b0c7cbadd0b29ed348b7bc9ee5235bfc3107aa0e4f4f2ae72?s=16&d=retro) |
a01344b |
}
|
|
![](https://seccdn.libravatar.org/avatar/4d04624359573e2b0c7cbadd0b29ed348b7bc9ee5235bfc3107aa0e4f4f2ae72?s=16&d=retro) |
a01344b |
|
|
![](https://seccdn.libravatar.org/avatar/4d04624359573e2b0c7cbadd0b29ed348b7bc9ee5235bfc3107aa0e4f4f2ae72?s=16&d=retro) |
a01344b |
TEST_BOOLEAN="domain_can_mmap_files"
|
|
![](https://seccdn.libravatar.org/avatar/4d04624359573e2b0c7cbadd0b29ed348b7bc9ee5235bfc3107aa0e4f4f2ae72?s=16&d=retro) |
a01344b |
|
|
![](https://seccdn.libravatar.org/avatar/4d04624359573e2b0c7cbadd0b29ed348b7bc9ee5235bfc3107aa0e4f4f2ae72?s=16&d=retro) |
a01344b |
rlJournalStart
|
|
![](https://seccdn.libravatar.org/avatar/4d04624359573e2b0c7cbadd0b29ed348b7bc9ee5235bfc3107aa0e4f4f2ae72?s=16&d=retro) |
a01344b |
rlPhaseStartSetup
|
|
![](https://seccdn.libravatar.org/avatar/4d04624359573e2b0c7cbadd0b29ed348b7bc9ee5235bfc3107aa0e4f4f2ae72?s=16&d=retro) |
a01344b |
rlRun "bool_default=\$(boolGet domain_can_mmap_files)" 0 \
|
|
![](https://seccdn.libravatar.org/avatar/4d04624359573e2b0c7cbadd0b29ed348b7bc9ee5235bfc3107aa0e4f4f2ae72?s=16&d=retro) |
a01344b |
"Get the initial boolean value"
|
|
![](https://seccdn.libravatar.org/avatar/4d04624359573e2b0c7cbadd0b29ed348b7bc9ee5235bfc3107aa0e4f4f2ae72?s=16&d=retro) |
a01344b |
rlRun "auditctl -a exclude,never -F subj_user=sysadm_u" 0 \
|
|
![](https://seccdn.libravatar.org/avatar/4d04624359573e2b0c7cbadd0b29ed348b7bc9ee5235bfc3107aa0e4f4f2ae72?s=16&d=retro) |
a01344b |
"Add an audit rule that triggers the bug"
|
|
![](https://seccdn.libravatar.org/avatar/4d04624359573e2b0c7cbadd0b29ed348b7bc9ee5235bfc3107aa0e4f4f2ae72?s=16&d=retro) |
a01344b |
rlPhaseEnd
|
|
![](https://seccdn.libravatar.org/avatar/4d04624359573e2b0c7cbadd0b29ed348b7bc9ee5235bfc3107aa0e4f4f2ae72?s=16&d=retro) |
a01344b |
|
|
![](https://seccdn.libravatar.org/avatar/4d04624359573e2b0c7cbadd0b29ed348b7bc9ee5235bfc3107aa0e4f4f2ae72?s=16&d=retro) |
a01344b |
rlPhaseStartTest
|
|
![](https://seccdn.libravatar.org/avatar/4d04624359573e2b0c7cbadd0b29ed348b7bc9ee5235bfc3107aa0e4f4f2ae72?s=16&d=retro) |
a01344b |
rlRun "setsebool domain_can_mmap_files $(( 1 - $bool_default )) &" 0 \
|
|
![](https://seccdn.libravatar.org/avatar/4d04624359573e2b0c7cbadd0b29ed348b7bc9ee5235bfc3107aa0e4f4f2ae72?s=16&d=retro) |
a01344b |
"Start setsebool in the background (it may hang)"
|
|
![](https://seccdn.libravatar.org/avatar/4d04624359573e2b0c7cbadd0b29ed348b7bc9ee5235bfc3107aa0e4f4f2ae72?s=16&d=retro) |
a01344b |
rlRun "sleep 5s" 0 "Give it a grace period of 5 seconds"
|
|
![](https://seccdn.libravatar.org/avatar/4d04624359573e2b0c7cbadd0b29ed348b7bc9ee5235bfc3107aa0e4f4f2ae72?s=16&d=retro) |
a01344b |
rlRun "test \$(jobs -r | wc -l) -eq 0" 0 "Check that it has exited"
|
|
![](https://seccdn.libravatar.org/avatar/4d04624359573e2b0c7cbadd0b29ed348b7bc9ee5235bfc3107aa0e4f4f2ae72?s=16&d=retro) |
a01344b |
rlPhaseEnd
|
|
![](https://seccdn.libravatar.org/avatar/4d04624359573e2b0c7cbadd0b29ed348b7bc9ee5235bfc3107aa0e4f4f2ae72?s=16&d=retro) |
a01344b |
|
|
![](https://seccdn.libravatar.org/avatar/4d04624359573e2b0c7cbadd0b29ed348b7bc9ee5235bfc3107aa0e4f4f2ae72?s=16&d=retro) |
a01344b |
rlPhaseStartCleanup
|
|
![](https://seccdn.libravatar.org/avatar/4d04624359573e2b0c7cbadd0b29ed348b7bc9ee5235bfc3107aa0e4f4f2ae72?s=16&d=retro) |
a01344b |
rlRun "auditctl -d exclude,never -F subj_user=sysadm_u" 0 \
|
|
![](https://seccdn.libravatar.org/avatar/4d04624359573e2b0c7cbadd0b29ed348b7bc9ee5235bfc3107aa0e4f4f2ae72?s=16&d=retro) |
a01344b |
"Remove the audit rule"
|
|
![](https://seccdn.libravatar.org/avatar/4d04624359573e2b0c7cbadd0b29ed348b7bc9ee5235bfc3107aa0e4f4f2ae72?s=16&d=retro) |
a01344b |
rlRun "boolSet domain_can_mmap_files $bool_default" 0 \
|
|
![](https://seccdn.libravatar.org/avatar/4d04624359573e2b0c7cbadd0b29ed348b7bc9ee5235bfc3107aa0e4f4f2ae72?s=16&d=retro) |
a01344b |
"Restore the boolean value"
|
|
![](https://seccdn.libravatar.org/avatar/4d04624359573e2b0c7cbadd0b29ed348b7bc9ee5235bfc3107aa0e4f4f2ae72?s=16&d=retro) |
a01344b |
rlPhaseEnd
|
|
![](https://seccdn.libravatar.org/avatar/4d04624359573e2b0c7cbadd0b29ed348b7bc9ee5235bfc3107aa0e4f4f2ae72?s=16&d=retro) |
a01344b |
rlJournalPrintText
|
|
![](https://seccdn.libravatar.org/avatar/4d04624359573e2b0c7cbadd0b29ed348b7bc9ee5235bfc3107aa0e4f4f2ae72?s=16&d=retro) |
a01344b |
rlJournalEnd
|