Windows share without password

Время на прочтение2 мин

Количество просмотров27K

Добрый день! Недавно возникла острая необходимость удаленно перезагрузиться в другую операционную систему на рабочем компьютере. Если в случае с перезагрузкой из linux в windows все просто — достаточно поправить файл /etc/default/grub и обновить сам загрузчик, то наоборот из Windows загрузиться в Linux чуточку сложнее, но можно.

Итак, приступим!

Дано:

Windows XP
Ubuntu 11.04, установленная на файловую систему Ext4
Собственно, сам загрузчик GRUB, настроенный на загрузку Windows.

Готовим конфигурационные файлы GRUB

Чтобы удаленно перезапустить машину в из Windows в Linux, не имея возможности при старте выбрать операционную систему в списке, сделаем две версии файла /boot/grub/grub.cfg, в каждом из которых будет настроена на запуск только одна ОС. Для этого откроем файл /etc/default/grub, найдем в нем строчку grub_default и выставим значение нужной операционной системы — например, у меня это цифра 5 для Windows и 0 для Ubuntu (0 — первая строчка в загрузочном окне, 1 — вторая и т.д.). Сохраняем файл, после чего перезапускаем GRUB командой update-grub. В этот момент файл /boot/grub/grub.cfg заново создается в системе. Получившийся файл сохраняем в любое удобное место, и повторяем редактирование строки grub-default, но уже для другой ОС. Обновляем груб командой и сохраняем второй экземпляр файла. Главное — определиться, какой файл относится к какой операционной системе.

Ext2Fsd – инструмент для работы с Ext

Итак, две версии настроек загрузчика готовы, но чтобы их забросить из Windows на раздел Ext4, необходима программа-драйвер, такая как Ext2Fsd. Скачать последнюю версию 0.51 можно с официального сайта http://www.ext2fsd.com/. Перезагружаемся в Windows и устанавливаем скачанную программу.

После установки ставим запускаем программу, назначаем разделу с линуксом любую букву (пункт «Change Drive Letter»), и выбираем после в контекстном меню «Ext2 Management» (Клавиша F3), где снимаем галочку «Только для чтения».

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

Далее пользуемся обычным проводником XP — находим созданный ранее файл grub.cfg, отвечающий за загрузку Linux, и заменяем им файл, лежащий в каталоге /boot/grub/grub.cfg.

После этого я на всякий случай отключаю запись на диск с линуксом (снова ставлю галочку «Только чтение»), и спокойно перезапускаю компьютер. Теперь при перезагрузке автоматически запустится linux. Ждем минуту и подключаемся любимым клиентом — VNC, SSH и т.д.

Все, можно работать в нужной операционной системе!

Распределенное обучение с TensorFlow и Python

AI_Generated 05.05.2025

В машинном обучении размер имеет значение. С ростом сложности моделей и объема данных одиночный процессор или даже мощная видеокарта уже не справляются с задачей обучения за разумное время. Когда. . .

CRUD API на C# и GraphQL

stackOverflow 05.05.2025

В бэкенд-разработке постоянно возникают новые технологии, призванные решить актуальные проблемы и упростить жизнь программистам. Одной из таких технологий стал GraphQL — язык запросов для API,. . .

Распознавание голоса и речи на C#

UnmanagedCoder 05.05.2025

Интеграция голосового управления в приложения на C# стала намного доступнее благодаря развитию специализированных библиотек и API. При этом многие разработчики до сих пор считают голосовое управление. . .

Реализация своих итераторов в C++

NullReferenced 05.05.2025

Итераторы в C++ — это абстракция, которая связывает весь экосистему Стандартной Библиотеки Шаблонов (STL) в единое целое, позволяя алгоритмам работать с разнородными структурами данных без знания их. . .

Разработка собственного фреймворка для тестирования в C#

UnmanagedCoder 04.05.2025

C# довольно богат готовыми решениями – NUnit, xUnit, MSTest уже давно стали своеобразными динозаврами индустрии. Однако, как и любой динозавр, они не всегда могут протиснуться в узкие коридоры. . .

Распределенная трассировка в Java с помощью OpenTelemetry

Javaican 04.05.2025

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

Шаблоны обнаружения сервисов в Kubernetes

Mr. Docker 04.05.2025

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

Создаем SPA на C# и Blazor

stackOverflow 04.05.2025

Мир веб-разработки за последние десять лет претерпел коллосальные изменения. Переход от традиционных многостраничных сайтов к одностраничным приложениям (Single Page Applications, SPA) — это. . .

Реализация шаблонов проектирования GoF на C++

NullReferenced 04.05.2025

«Банда четырёх» (Gang of Four или GoF) — Эрих Гамма, Ричард Хелм, Ральф Джонсон и Джон Влиссидес — в 1994 году сформировали канон шаблонов, который выдержал проверку временем. И хотя C++ претерпел. . .

C# и сети: Сокеты, gRPC и SignalR

UnmanagedCoder 04.05.2025

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

Background
The requirement was to secure the bootloader without needing to share the credentials with the end user to be able to boot into the operating system.

Securing Bootloader is required to

i. Preventing Access to Single User Mode — If attackers can boot the system into single user mode, they are logged in automatically as root without being prompted for the root password.

ii. Preventing Access to the GRUB Console — If the machine uses GRUB as its boot loader, an attacker can use the use the GRUB editor interface to change its configuration or to gather information using the cat command.

iii Preventing Access to Non-Secure Operating Systems — If it is a dual-boot system, an attacker can select at boot time an operating system, such as DOS, which ignores access controls and file permissions.

Challenge
After going through tons of documents online, I couldn’t find clear step by step documentation on how to achive this but all of them very well explained how to set password to get through to the bootloader and it used to prompt for credentials to get to the bootloader.

Pre-requisites

  • Although the following was done on Ubunto 20.04 LTS but it should work on any system with Grub version 1.9 or above (To check your Grub version try, grub-install —version)
    With Grub 2, there is no /boot/grub/menu.lst. It has been replaced by /boot/grub/grub.cfg. grub.cfg is overwritten by certain Grub 2 package updates, whenever a kernel is added or removed, or when the user runs update-grub.

  • Although not a must but SSH access to the host would be ideal

Step by step guide

  1. Generate Encrypted Password
# grub-mkpasswd-pbkdf2
Enter password: 
Reenter password: 
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.380AD91E6C36BB4018B5CABDAFF5CABC52A16B6EFF503B6BB2E21199C006C526AEE3A2FF8CF41F9A07AEFB1E8E2275ABB44C41B1429B9C5D509786E2B57A51DA.989F1E9FAC061899E1BB8CB38D2119B26E6CE79A5CBB637E5A611AE099EBBF7CD9BCF1A3EC516CE0E4AD007B7DF8E679220BC845E07E440F134DED2537081F54

This command converts your desired password into a very long alphanumeric hash. Keep this handy from grub.pbkdf2 onwards for step 2.

  1. Set the Password on GRUB2 main Configuration File
# cp /etc/grub.d/40_custom /etc/grub.d/40_custom.old
# echo 'set superusers="admin" # You can use any username you like' >> /etc/grub.d/40_custom
# Paste the generated PBKDF2 encrypted password from step 1 into the below command.
# echo 'password_pbkdf2 admin grub.pbkdf2.sha512.10000.380AD91E6C36BB4018B5CABDAFF5CABC52A16B6EFF503B6BB2E21199C006C526AEE3A2FF8CF41F9A07AEFB1E8E2275ABB44C41B1429B9C5D509786E2B57A51DA.989F1E9FAC061899E1BB8CB38D2119B26E6CE79A5CBB637E5A611AE099EBBF7CD9BCF1A3EC516CE0E4AD007B7DF8E679220BC845E07E440F134DED2537081F54' >> /etc/grub.d/40_custom
  1. To prevent supervisor password every time you want to boot any menu item
    Carefully edit the ‘linux_entry ()‘ function in ‘/etc/grub/10_linux‘ so that the ‘echo «menuentry …»‘ lines include —unrestricted by default:
# cp /etc/grub.d/10_linux /etc/grub.d/10_linux.old
# vim /etc/grub.d/10_linux

The modified function should look something like below to include —unrestricted flag. There are only two places to include this.

[…]
echo «menuentry ‘$(echo «$title» | grub_quote)’ —unrestricted ${CLASS} $menuentry_id_option ‘gnulinux-$version-$type-$boot_device_id’ {» | sed «s/^/$submenu_indentation/»
else
echo «menuentry ‘$(echo «$os» | grub_quote)’ —unrestricted ${CLASS} $menuentry_id_option ‘gnulinux-simple-$boot_device_id’ {» | sed «s/^/$submenu_indentation/»
[…]

Make a backup of this file as it will be overwritten by grub updates. This way all Linux kernels detected by the script will be available to all users without identifying to grub via username / password.

  1. Update Grub

You may now reboot the system to test.

В одном предыдущая статья мы видели, как защитить Grub2 так что никто не может редактировать его, если это не пользователь с привилегиями.

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

Возьмем в качестве примера компьютер, на котором установлен Ubuntu 12.04 y Windows XP.

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

Настройка пользователей:

Для каждого входа в Grub вы можете установить пользователя, кроме суперпользователя (тот, у кого есть доступ для изменения Grub, нажав клавишу «e»). Сделаем это в файле /etc/grub.d/00_header. Открываем файл любимым редактором:

$ sudo nano /etc/grub.d/00_header

В конце ставим следующее:

cat << EOF set superusers = "user1" password user1 password1 EOF

Где user1 — суперпользователь, например:

cat << EOF set superusers = "superuser" пароль superuser 123456 EOF

Теперь, чтобы создать больше пользователей, нам просто нужно добавить его под строкой:

password superusuario 123456

Это было бы примерно так:

cat << EOF set superusers = "superuser" password superuser 123456 password user2 7890 EOF

После того, как мы установили нужных пользователей, мы сохраняем изменения.

Защита Windows

Прежде чем продолжить эту часть, мне нужно кое-что уточнить. Эту статью я взял у себя старый блог, и шаги, которые я комментирую далее, — это те шаги, которые необходимо было выполнить в то время. Но сегодня мне пришлось их повторить, и есть небольшие изменения. Я комментирую их ниже:

Теперь нам нужно отредактировать файл /etc/grub.d/30_os-prober. Открываем его любимым редактором

$ sudo nano /etc/grub.d/30_os-prober

И мы ищем строку кода, которая говорит:

menuentry "${LONGNAME} (on ${DEVICE})" {

В настоящее время строка гласит:

menuentry "${LONGNAME} (on ${DEVICE})" --class windows --class os {

Это примерно в строке 100 или 151, и мы оставим это так:

menuentry "${LONGNAME} (on ${DEVICE})" --users manager --class windows --class os {

Сохраняем изменения и выполняем:

$ sudo update-grub2

Раньше, чтобы это работало, нам нужно было открыть файл /boot/grub/grub.cfg

$ sudo nano /boot/grub/grub.cfg

Найдите запись Windows (примерно так):

menuentry "Windows XP Profesional" {

и оставьте так:

menuentry "Windows XP Profesional" --users usuario2 {

Но в этом больше нет необходимости, потому что при выполнении команды

$ sudo update-grub2

Изменения добавляются автоматически. Перезагрузите и вуаля, попробуйте войти в Windows, и она попросит пароль. Если они нажмут клавишу «e», он также запросит пароль.

  • Печать

Страницы: [1]   Вниз

Тема: Редактирование загрузчика GRUB из под Windows  (Прочитано 15420 раз)

0 Пользователей и 1 Гость просматривают эту тему.

!Serg

Необходимо сделать, на системе с Ubuntu и Windows, автоматическую перезагрузку именно работающей ОС. Т.е. если мы работаем под Windows, то при перезагрузке Windows и загружается, а если под Ubuntu, то Ubuntu. Но с задержкой для ручного выбора. Под Ubuntu примерно представляю как сделать редактирование GRUB. Но как отредактировать GRUB из под Windows?


shumtest

Если Груб2, то в конфиге груба в пункт default пропиши saved и все.


!Serg

Если Груб2, то в конфиге груба в пункт default пропиши saved и все.

Спасибо, попробую в grub2.

И все таки, вопрос о редактировании GRUB из под Windows остается открытый. Ситуации бывают разные. Например, при нормальной перезагрузке грузится Windows, а при сбое (например, голубой экран) грузится Ubuntu.
Алгоритм следующий:
1. грузится Windows.
2. заменяем с помошью cmd файла grub2 на загрузку Ubuntu (на случай сбоя Windows).
3. при перезагрузке Windows выполняется cmd исправляющий grub2 на загрузку Windows.
4. при сбое или после пропадании питания грузится Ubuntu.

Вся проблема в п.2.
Я так понимаю, что нужно подключить к Windows раздел Ubuntu на время редактирования grub2. Но с помощью чего это сделать или установить Ubuntu на fat32?


Eggg

!Serg, fat32??? к чему такое извращение?


alecsartania

Если Груб2, то в конфиге груба в пункт default пропиши saved и все.

Спасибо, попробую в grub2.

И все таки, вопрос о редактировании GRUB из под Windows остается открытый. Ситуации бывают разные. Например, при нормальной перезагрузке грузится Windows, а при сбое (например, голубой экран) грузится Ubuntu.
Алгоритм следующий:
1. грузится Windows.
2. заменяем с помошью cmd файла grub2 на загрузку Ubuntu (на случай сбоя Windows).
3. при перезагрузке Windows выполняется cmd исправляющий grub2 на загрузку Windows.
4. при сбое или после пропадании питания грузится Ubuntu.

Вся проблема в п.2.
Я так понимаю, что нужно подключить к Windows раздел Ubuntu на время редактирования grub2. Но с помощью чего это сделать или установить Ubuntu на fat32?

да кстати :
самое простое — при установке ubnuntu сделай отдельный раздел для /boot  100mgb на fat32 и меняй там себе файлик /boot/grub/grub.cfg или menu.lst
можно и на работающей системе выделить boot на отдельный раздел, но судя по вопросам это не для тебя.
 

Дома Linux Mint 21.1 / 22.00


shumtest

Зачем с фатом извращаться? Под вин есть драйвер ext3/ext4. Вполне рабочий.


alecsartania

Зачем с фатом извращаться? Под вин есть драйвер ext3/ext4. Вполне рабочий.

вот это и есть изврат — лезть грязными руками левых драйверописателей в корневые разделы.
 а с отдельным boot  все красиво и надежно.

Дома Linux Mint 21.1 / 22.00


!Serg

!Serg, fat32??? к чему такое извращение?

А что? FAT вполне работоспособная, простая и шустрая система, а главное просто восстанавливается, если что.


Пользователь решил продолжить мысль 05 Марта 2011, 08:26:35:


да кстати :
самое простое — при установке ubnuntu сделай отдельный раздел для /boot  100mgb на fat32 и меняй там себе файлик /boot/grub/grub.cfg или menu.lst
можно и на работающей системе выделить boot на отдельный раздел, но судя по вопросам это не для тебя.

Выделить boot на работающей системе, это мысль, спасибо. Ну намекни чем, попробую. Акроникс или ПаришенМанагер 11 справиться?


Пользователь решил продолжить мысль 05 Марта 2011, 08:32:09:


Зачем с фатом извращаться? Под вин есть драйвер ext3/ext4. Вполне рабочий.

Интересно, просьба, дай ссылку. А то что я нашел без редактирования ext раздела, только чтение.


Пользователь решил продолжить мысль 05 Марта 2011, 08:33:44:


Зачем с фатом извращаться? Под вин есть драйвер ext3/ext4. Вполне рабочий.

вот это и есть изврат — лезть грязными руками левых драйверописателей в корневые разделы.
 а с отдельным boot  все красиво и надежно.

Опасения конечно есть, но нужно тестить, тестить и тестить.

« Последнее редактирование: 05 Марта 2011, 08:33:44 от !Serg »

i7-3.7Mz/12Gb/SSD-Intel


!Serg

Поставил под W7 драйвер ext, раздел виден как обычный диск и возможностью редактирования. Этим способом проблему решил.
А вот с установкой Ubuntu с загрузчиком под fat ничего не получилось.


denkin

Чисто из любознательности — удалением гланд через Ж не увлекались?


!Serg

Чисто из любознательности — удалением гланд через Ж не увлекались?

На грубость нарываетесь или особенно сведущий по сей части?


denkin

Ну назовем это неудачной шуткой. А если серьезно — в чем необходимость такого пути — правка граб через виндоус? Просто любопытно Может что то присоветую(ют) попроще.

« Последнее редактирование: 11 Марта 2011, 09:18:51 от denkin »


!Serg

Ну назовем это неудачной шуткой. А если серьезно — в чем необходимость такого пути — правка граб через виндоус? Просто любопытно Может что то присоветую(ют) попроще.

В первом сообщении описана одна проблема, но у меня еще grub (а на некоторых системах lilo). Проблема решается установкой grub2 с параметром saved.
Не решается проблема с удаленным администрированием задачи не возможной в Windows, для этого необходимо загрузится под Linux. И тут без редактирования grub из под Windows не обойтись. Об этой задаче я не могу информировать, к сожалению.


Пользователь решил продолжить мысль 11 Марта 2011, 15:38:12:


Всем спасибо, проблема решена. Написал пару скриптов, теперь работает как надо.

« Последнее редактирование: 11 Марта 2011, 15:38:12 от !Serg »

i7-3.7Mz/12Gb/SSD-Intel


  • Печать

Страницы: [1]   Вверх

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Windows powershell install windows updates
  • Не показывает жесткий диск при установке windows 10
  • Куда устанавливаются библиотеки python windows
  • Ошибка 0х80004005 при установке windows 10
  • Миграция пользователя windows 10 на другой компьютер