| #!/usr/bin/env bash |
| |
| # Copyright The containerd Authors. |
| |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| # |
| # set the desired SELinux mode via envvar |
| # |
| set -eux -o pipefail |
| |
| if ! type -p getenforce setenforce &>/dev/null; then |
| echo SELinux is Disabled |
| exit 0 |
| fi |
| |
| case "${SELINUX}" in |
| Disabled) |
| if mountpoint -q /sys/fs/selinux; then |
| setenforce 0 |
| umount -v /sys/fs/selinux |
| fi |
| ;; |
| Enforcing) |
| mountpoint -q /sys/fs/selinux || mount -o rw,relatime -t selinuxfs selinuxfs /sys/fs/selinux |
| setenforce 1 |
| ;; |
| Permissive) |
| mountpoint -q /sys/fs/selinux || mount -o rw,relatime -t selinuxfs selinuxfs /sys/fs/selinux |
| setenforce 0 |
| ;; |
| *) |
| echo "SELinux mode not supported: ${SELINUX}" >&2 |
| exit 1 |
| ;; |
| esac |
| |
| echo SELinux is "$(getenforce)" |