Настройка входа в виртуальную машину вместо локального входа

У меня раньше был вопрос, это связано с тем, что кто-то искал правильную процедуру, а этот – как ее реализовать. Если вам нужна предыстория, обратитесь к моему первому вопросу.

У меня есть локальное устройство. Я единственный, кто хочет иметь «локальный доступ». Давайте назовем это устройство charles.local

Я хочу иметь его, поэтому, когда я делаю addusr bob, он раскручивает виртуальную машину bob.charles.local

Когда Боб за компьютером и входит в систему, он бросает его в его маленькую среду вместо

Я знаю, как раскрутить виртуальную машину, полный экземпляр с ОС, а не то, что я хочу делать, но я могу создавать моды там, где это необходимо, я знаю, как управлять локальным компьютером с помощью Linux, я знаю, как создать цикл fdisk create. Дэв.

  1. Будет ли init иметь возможность обрабатывать процесс входа в систему, к которому я стремлюсь, поэтому, когда появляется экран входа в систему, и Боб входит в систему, он автоматически сбрасывает его в виртуальную машину, или мне нужен отдельный сервер входа в систему, такой как kerberus?
  2. Можно ли раскрутить виртуальную машину только с одним пользователем, без добавления дополнительного пользователя, и сделать так, чтобы боб просто вошел в систему компьютера, как обычно.
  3. Я смог отследить, skel, login, logout, adduser, deluser, passwd, shadow, config файлы, мне нужно будет изменить конфигурацию initd? есть ли еще какие-нибудь конфиги, которые мне нужны для запуска этого мяча?
    1. Нужно ли какое-либо другое специальное программное обеспечение вне VMM?

Я пытаюсь настроить локальное устройство, чтобы class мог войти в систему компьютера и получить 0 доступа к реальной машине, чтобы они могли работать с root, не мешая другим студентам и с минимальным вкладом от них … В основном единственный вход на локальный компьютер, который они могут сделать, это их имя пользователя и пароль. Все остальное будет обработано в их среде.

One Solution collect form web for “Настройка входа в виртуальную машину вместо локального входа”

У меня недостаточно очков, чтобы комментировать, но есть шанс, что это также ответит на ваш вопрос.

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

Как об этом вместо этого, что звучит как ваша намеченная цель – режим “киоска”, за исключением случаев, когда у пользователя есть неограниченные локальные полномочия даже для разрушения всей ОС, но он легко сбрасывается. (В этом случае, автоматически.) Единственное отличие, я думаю, заключается в том, что в нем не участвуют конкретные индивидуальные пользовательские сессии, потому что для реализации этой идеи отдельные пользовательские сессии на самом деле не нужны, а на самом деле все усложняют. (Но если отдельные пользовательские сеансы являются требованием, то, по крайней мере, это решение могло бы помочь вам начать работу в правильном направлении. Подумайте: «Постоянный образ диска базовой виртуальной машины только для чтения, который доступен всем пользователям, но у каждого пользователя есть собственная виртуальная машина». файл определения и разностный диск для чтения / записи, которые удаляются и восстанавливаются при каждом входе в систему.)

Сначала несколько быстрых определений:

  • «Хост» или «Машина»: физическая машина. Возможно, под управлением Windows, MacOS или Linux, это не должно иметь большого значения – каждый из них может быть настроен таким образом, хотя не всегда очевидно, как перехватывать выходы из системы и завершения работы в любом из них. (Я знаю, что оба могут быть выполнены в Windows и Linux, и сильно подозреваю в MacOS. Все они также могут быть настроены для автоматического входа при запуске.)

  • «VM», «виртуальная машина» или «гость»: виртуальная машина, работающая на хост-машине. Судя по всему, вы хотите, чтобы это был Linux, но это может быть и Windows, за исключением потенциальных проблем с лицензированием. (Например, если пользователь испортил лицензию, этот сбой сохраняется, даже если сама ОС полностью запускается с контрольной точки.)

Каждый хост-компьютер будет иметь один сеанс «пользователя», а внутри этого сеанса – один прозрачный сеанс гостя. Пользователь только увидит или обязательно узнает о существовании гостевого сеанса. (Но безопасность сеанса хоста не должна и не должна зависеть от этой неясности.)

Общие шаги:

  1. Настройте хост-компьютер на автоматический вход в одну заблокированную учетную запись пользователя при запуске, например, «vmuser». Отключите тайм-аут сеанса / блокировку и заставку. (Экран выключен, но без блокировки сеанса.)

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

  3. При первоначальном входе в систему (при запуске) попросите сценарий входа запустить сеанс виртуальной машины в полноэкранном режиме (с непонятным переопределенным ключом «хоста». Например, блокировка прокрутки). Этот сценарий должен подождать, пока виртуальная машина не отключится, потому что позже у нее будет больше работы.

  4. Затем эта виртуальная машина также автоматически входит в систему как пользователь root или пользователь с правами администратора.

  5. Сценарий гостевого выхода: завершить работу всей виртуальной машины.

  6. Как только виртуальная машина выключается, ваш сценарий входа в систему возобновляется. Он откатывается назад к предопределенному снимку. Если сеанс пользователя хоста также не заканчивается, этот сценарий должен снова запустить резервную копию виртуальной машины. (Затем он снова автоматически входит в систему и возвращается к вам с новым новым сеансом.)

  7. Сценарий выхода из хоста: вам нужно будет взаимодействовать со сценарием входа в систему одним из множества возможных способов, либо прервать его, либо попросить не запускать резервное копирование виртуальной машины после выполнения ее отката. В любом случае, вы хотите отключить виртуальную машину (даже «жесткое» отключение допустимо). Откат виртуальной машины обратно к снимку. Затем либо снова включите автоматический вход в систему хоста (что потребует наблюдения службы или демона и приведет к восстановлению чистой восстановленной виртуальной машины), либо полностью выключите хост-компьютер.

  8. Если пользователь завершает работу хоста , происходит то же самое, что выход из системы (поскольку сеанс пользователя сначала выходит из системы), за исключением того, что вы хотите установить связь с этим сценарием, чтобы предотвратить вход в систему или отключение хоста (избыточно).

  9. Всякий раз, когда сеанс пользователя хоста входит в систему (что по иронии судьбы может быть более надежным с точки зрения времени, чем выполнение этого при запуске хоста), сценарий входа в систему всегда должен откатывать виртуальную машину до моментального снимка до ее запуска (или, по крайней мере, проверять, чтобы убедиться) На случай, если в прошлый раз его не отключили. Или, если вы ДЕЙСТВИТЕЛЬНО хотите быть устойчивым, сценарий запуска хост-машины может выполнить всю необходимую очистку – удаление любых файлов, потенциально используемых для межпроцессного взаимодействия, откат виртуальной машины на всякий случай и т. Д. – все время сценарий входа в систему, если он неизбежно инициируется во время всего этого, ждет, пока этот процесс не будет выполнен, прежде чем продолжить.

Таким образом, пользователь может делать все, что он хочет в ВМ, включая «rm -rf /», и завершение работы виртуальной машины, выход из сеанса пользователя хоста или перезагрузка хоста восстановят его автоматически. Пока сеанс пользователя хоста достаточно надежно заблокирован и защищен, а неизменяемый диск виртуальной машины не удаляется пользователем (что является хорошей причиной для его установки таким образом, а не моментальными снимками), тогда это будет ОЧЕНЬ трудно для пользователей испортить систему, даже если они вырвались из ВМ. (Тем не менее, любой человек с физическим доступом может скомпрометировать компьютер. И само собой разумеется – поэтому я бы хотел, чтобы об этом не нужно было говорить – что любые эксплойты для хост-ОС также могут поставить под угрозу ваше решение. Но, по крайней мере, эксплойты к гостю в основном несущественны с точки зрения постоянного повреждения гостевой ОС, так как в любом случае его можно откатить / сбросить.)

Я вполне уверен, что что-то в этом роде возможно, достаточно близко к тому, что было изложено – потому что я знаю, что каждый из этапов возможен, и многие из них я сделал сам.

Ваша общая потребность связана с идеей «режима киоска», которую вы можете использовать в Google. Конечно, режимы киосков обычно также include в себя блокирование взаимодействия с пользователем, что противоположно тому, что вы хотите, но могут быть некоторые идеи, которые приближают вас или похожи на это, но с другой технологией (например, контейнерами).

Удачи!

Interesting Posts

Работа в Cron работает чаще, чем я думал, что это должно

Переключение раскладки клавиатуры с док-станции

Ошибка сравнения десятичных целых чисел в сценарии bash

Ctrl + Delete и Ctrl + Backspace.

В команде tar -cvjf foo.tbz abc, что такое a, b и c?

Просмотреть удаленное значение $ PATH внутри сценария оболочки

pf блокирует весь трафик ввода / вывода вместо одного порта, который я хотел заблокировать

Загруженный из NFS Linux не имеет права на команду su

Отображение AltGr налево

Где Linux хранит пароли Wifi?

Как мы можем переименовать файл с точкой с запятой в качестве части имени файла?

Как получить доступ к машине за ограниченным шлюзом NAT я не умею?

ZFS на Linux объем низкий freespace. Usedbydataset больше, чем volsize

Android w / Glibc stack, как я могу настроить аудио w / nvlc? Возможно ли это с помощью ALSA (Debian)?

Как я могу использовать строковые манипуляции для обнаружения и удаления двух разных частей строки?

Linux и Unix - лучшая ОС в мире.