SELINUX_ERR op=security_bounded_transition

Вы можете использовать ] eval для получения и установки значения переменной, зная ее имя; следующая функция работает как в Bash, так и в Dash :

varmunge ()
{
  : '
  Invocation: varmunge   [after]
  Function:   Adds  to the list of directories in . If   is
              already present in  then  is left unchanged. If the third
               argument is "after" then  is added to the end of , otherwise
               it is added at the beginning.
  Returns:    0 if everthing was all right, 1 if something went wrong.
  ' :
  local pathlist
  eval "pathlist=\"\$$1\"" 2>/dev/null || return 1
  case ":$pathlist:" in
    *:"$2":*)
      ;;
    "::")
      eval "$1=\"$2\"" 2>/dev/null || return 1
      ;;
    *)
      if [ "$3" = "after" ]; then
        eval "$1=\"$pathlist:$2\"" 2>/dev/null || return 1
      else
        eval "$1=\"$2:$pathlist\"" 2>/dev/null || return 1
      fi
      ;;
  esac
  return 0
}

1
21.03.2017, 23:06
2 ответа

Неважно. А синяк, который вы видите у меня на лбу, это от того, что я бился головой об стол...

В файловой системе /opt я установил nosuid, несмотря на то, что знал, что двоичный файл агента был setuid() root.

0
27.01.2020, 23:34

Нет, нет, нет, нет, нет!

SELinux здесь не просто так. Ваши приложения никогда не должны иметь метки init_exec_t. Эта метка зарезервирована для systemd или других систем инициализации, которые могут использоваться в системе, как вы можете видеть в политике Fedora (например).

Запуск приложений в этом контексте устанавливает для них особый режим и ожидает, что это приложение будет вести себя как система инициализации (что, конечно же, не так).

Чтобы решить эту проблему, вам нужно поделиться, что это приложение должно делать, как оно запускается и где хранится. Как правило, вы должны иметь возможность установить для исполняемого файла какой-либо разумный контекст выполнения (sbin_exec_t?), а для других — какой-то общий контекст, читаемый для этих файлов (etc_t?).

У меня нет под рукой RHEL/Fedora, чтобы дать более конкретные советы в данный момент, но, конечно, ответ не в том, чтобы установить для всего контекста значение init_exec_t. Это не сработает.

2
27.01.2020, 23:34

Теги

Похожие вопросы