Вложенная виртуализация: выполненный RHEVH в KVM

Если она, как вы говорите, «должна запускаться при запуске на незарегистрированной учетной записи пользователя», то она обязательно будет иметь доступ ко всем файлам, к которым незарегистрированная учетная запись пользователя имеет доступ.

Для запуска сценария можно создать выделенную непроведенную учетную запись пользователя. Установите разрешения для файла секретного ключа так, чтобы его могла читать только выделенная учетная запись пользователя. Но кажется, что вам нужно запустить программу под определенной ранее существующей учетной записью пользователя, чтобы она не работала для вас.

Существуют и другие решения, например, запуск в chroot () , который имеет доступ к секретному ключу, но жизнеспособность этого ключа зависит от того, что он делает и к чему еще, кроме файла секретного ключа, ему необходим доступ.

Вам не нужно будет использовать sudo в любом случае, поскольку /etc/rc.local выполняется как root, поэтому вы можете su непосредственно к любой учетной записи, которую вы в конечном итоге выберете для запуска программы.

EDIT после уточнения вопроса:

Он должен выполняться каждый раз, когда пользователь любого вида регистраций в.

Вижу. Это очень отличается от запуска его один раз только при запуске с использованием /etc/rc.local , как вы изначально заявили!

Ваша ставка в этом случае, вероятно, будет заключаться в попытке встроить секретный ключ в двоичный файл вместо того, чтобы обращаться к нему как к внешнему файлу, иметь двоичный файл, принадлежащий root и исполняемый, но не читаемый другими пользователями (разрешения, такие как rwx- x- - x . Пользователи не смогут получить доступ к ключу (если они не скомпрометируют root в системе), но смогут запустить двоичный файл.

Если вы не можете встроить секретный ключ в двоичный, вы можете сделать двоичный setuid для некоторых пользователей, которые могут получить доступ к секретному ключу... но будьте внимательны к записи двоичных файлов setuid.

-121--175081-

Ключевой пункт в ответе Муру является то, что для получения обратной косой черты в FS regex необходимо записать двойную обратную косую черту \\. Это потому, что обратная косая черта используется как побег символ на двух разных уровнях.

Одиночная обратная косая черта в последовательность будет рассматриваться как ускользающая от следующего символа, поэтому нам нужно уйти от самой обратной косой черты, чтобы получить единственную обратную косую черту в регексе. И тогда , что обратная косая черта уйдет от следующего символа в пределах regex.

Как я сказал в комментарии, нет никакой разницы между FS = 'ax\*' и FS = 'ax *' , потому что \* рассматривается как * , но неловко напечатает предупреждение на этот счет. Если требуется поместить литерал * в FS , необходимо использовать двойную обратную косую черту, например FS = 'ax\\*' разделится на ax * .

Может быть, некоторые примеры сделают все это немного яснее.

#!/usr/bin/env bash

s='123abcd
123axbcd
123axxbcd
123ax*bcd
123ax**bcd'

printf "%s\n\n" "$s"

awk -F 'ax*' 'BEGIN{printf "FS=[%s]\n", FS};{printf "[%s] [%s]\n", $1, $2}' <<< "$s"
echo

awk 'BEGIN{FS="ax*"; printf "FS=[%s]\n", FS};{printf "[%s] [%s]\n", $1, $2}' <<< "$s"
echo


awk -F 'ax\*' 'BEGIN{printf "FS=[%s]\n", FS};{printf "[%s] [%s]\n", $1, $2}' <<< "$s"
echo

awk 'BEGIN{FS="ax\*"; printf "FS=[%s]\n", FS};{printf "[%s] [%s]\n", $1, $2}' <<< "$s"
echo


awk -F 'ax\\*' 'BEGIN{printf "FS=[%s]\n", FS};{printf "[%s] [%s]\n", $1, $2}' <<< "$s"
echo

awk 'BEGIN{FS="ax\\*"; printf "FS=[%s]\n", FS};{printf "[%s] [%s]\n", $1, $2}' <<< "$s"
echo

вывод

123abcd
123axbcd
123axxbcd
123ax*bcd
123ax**bcd

FS=[ax*]
[123] [bcd]
[123] [bcd]
[123] [bcd]
[123] [*bcd]
[123] [**bcd]

FS=[ax*]
[123] [bcd]
[123] [bcd]
[123] [bcd]
[123] [*bcd]
[123] [**bcd]

awk: warning: escape sequence `\*' treated as plain `*'
FS=[ax*]
[123] [bcd]
[123] [bcd]
[123] [bcd]
[123] [*bcd]
[123] [**bcd]

awk: warning: escape sequence `\*' treated as plain `*'
FS=[ax*]
[123] [bcd]
[123] [bcd]
[123] [bcd]
[123] [*bcd]
[123] [**bcd]

FS=[ax\*]
[123abcd] []
[123axbcd] []
[123axxbcd] []
[123] [bcd]
[123] [*bcd]

FS=[ax\*]
[123abcd] []
[123axbcd] []
[123axxbcd] []
[123] [bcd]
[123] [*bcd]
-121--97760-

У меня была эта проблема в 14,04.

Если дистрибутив использует Upstart для запуска процессов,перейдите на страницу /etc/init/autofs.conf и измените строку

start on runlevel [2345]

на

start on (local-filesystems and net-device-up IFACE!=lo)

. Это заставит Upstart подождать с запуском autofs, пока не будет доступна файловая система и сеть.

Я не использую nis, но я предполагаю, что это ваша главная проблема. Это было для многих людей. Извините за возрождение этого старого поста. Просто подумал, что эта информация должна быть здесь

0
31.01.2016, 23:41
2 ответа

Вам необходимо настроить вложение на ноутбуке перед тем, как пытаться запустить гипервизор внутри ВМ. В любом случае, это будет не очень быстрая и нигде не достойная установка. Достаточно хорошо для тестирования и демонстрации

.
0
28.01.2020, 02:52

Его возможный запуск 3.3 в виртуальную машину в кВМ. Вы должны включить опции виртуализации вычислений (из BIOS), а затем установить RHEL как операционную систему. Затем, после установки RHEL, вы должны установить RHEV 3.3 (если у вас включены приватные каналы и все целиком).

Но, если вы хотите использовать KVM в качестве гипервизора, это невозможно, по указанным выше причинам.

Greetings

1
28.01.2020, 02:52

Теги

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