Да, Вы могли рассматривать его как дефект безопасности в том, как файл Unix и полномочия каталога определены и реализованы. Это - компромисс; это позволяет Вам, например, предоставить пользовательский доступ к каталогу глубоко в ограниченной иерархии, если они знают путь.
Обходное решение должно вложить ограниченные каталоги так, чтобы Вы предположили несколько компонентов, прежде чем можно будет получить доступ к действительно уязвимой информации. Но конечно, это действительно не добавляет безопасность, просто мрак.
root
пользователь может обойти любое из этих ограничений так или иначе, таким образом, это, тем не менее, не особенно безопасно. Если Вы хотите разумную безопасность, многопользовательская система, вероятно, не, где необходимо быть.
Здесь является моим:
menuentry "FreeBSD" --class freebsd --class bsd --class os {
insmod ufs2
insmod bsd
set root=(hd0,1)
kfreebsd /boot/kernel/kernel
kfreebsd_loadenv /boot/device.hints
set kFreeBSD.vfs.root.mountfrom=ufs:/dev/ada0s1a
set kFreeBSD.vfs.root.mountfrom.options=rw
set kFreeBSD.hw.psm.synaptics_support=1
}
Отредактируйте Ваш /etc/grub.d/40_custom
и добавьте директивы uzsolt. Добавьте директиву в конце файла. Не удаляйте ничего, что является там.
Удостовериться 40_custom
исполняемый файл. Если не затем chmod u+x 40_custom
.
Теперь сделайте это для записи изменений в grub.cfg
.
grub2-install /dev/sda
os-prober
grub2-mkconfig -o /boot/grub/grub.cfg
Tada! Перезагрузите теперь; у Вас должен быть FreeBSD в Вашем списке ОС в меню GRUB.
Отредактируйте свою конфигурацию ядра для добавления UFS filesystem
и UFS label
.
Затем make && make_modules
Ваше ядро.
Установите программное обеспечение файловой системы UFS.
Смонтируйте свою Часть UFS в соответствии с Вашим Linux:
sudo mkdir /mnt/freebsd && sudo mount -r -t ufs -o ufstype=ufs2 /dev/sda1 /mnt/freebsd
Моей целью было..: Загрузить FreeBSD 10 из Grub2, отредактировав 40_custom в /etc/grub.d
My Setup: FreeBSD10 находится на пятом hdd моей системы (/dev/sde под Linux, так что hd4 для Grub2. Помните, что под Grub2 hd начинается с hd0 для дисков, а разделы с 1 и далее, а не с нуля). Корневой раздел является вторым (/dev/sde2), так как при установке я использовал Guided разметку FreeBSD (используйте весь диск) (простейший). Напомним, что это: установите root='(hd4,2)' для пятого раздела hdd и второго раздела.
информация: (на самом деле chainloader +1 не требуется ! Следующее приводит меня непосредственно к загрузчику FreeBSD).
Подводя немного итог: вы просто должны адаптировать набор root=(x,x), больше ничего не нужно. Если вы хотите загрузить ядро напрямую, то все немного сложнее, чем указано ниже.
menuentry "FreeBSD 10.0" {
insmod part_gpt
set root='(hd4,2)'
kfreebsd /boot/loader
}
Я был немного разочарован os-prober, который только что нашел 'Unknown linux distribution on /dev/sde2'
ps: не забудьте потом 'update-grub' и Taddaa (надеюсь). :) Если кто-нибудь добьется успеха, бросьте мне msg, я буду рад услышать это от вас!
В вики Arch Linux есть очень хорошее объяснение того же. Он управляет обычным способом, то есть прямой загрузкой ОС, а также загрузкой по цепочке.
Однако не следует забывать выполнить sudo grub-mkconfig -o /boot/grub/grub.cfg
, чтобы зафиксировать изменения.
Согласно этот сайт :
/boot/grub2/custom.cfg
. Добавьте эти строки в созданный файл:
menuentry "FreeBSD" {
set root = '(hd0,3)'
kfreebsd / boot / loader
}
где hd0,3
означает, что это первый жесткий диск, а FreeBSD находится на третьем разделе (поскольку диски нумеруются от 0, а разделы - с 1). Возможно, вам придется скорректировать эти числа. Один из способов узнать, какие у вас диски, - запустить fdisk -l
.
Запустите grub2-mkconfig -o /boot/grub2/grub.cfg
.
Помните, что ваши команды могут немного отличаться. grub2-mkconfig
может быть grub-mkconfig
и так далее (это был мой случай с BunsenLabs Linux).
Помните, что я использовал FreeBSD с UFS вместо ZFS на этой машине. Представленное решение не работает для установок на основе ZFS, насколько я слышал.
В настоящее время в Ubuntu 20.04 и FreeBSD 12.x все работает.
/etc/grub.d/40 _пользовательский файл в Ubuntu, добавьте следующее:-
root@a44h-ubuntu:/home/xxxxxxx# more /etc/grub.d/40_custom
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
menuentry "FreeBSD" {
insmod ufs2
chainloader (hd0,msdos1)/boot/boot
#does not work for me
#set root=(hd0,1) #does not work for me
#kfreebsd /boot/boot0 #does not work for me
#chainloader +1 #does not work for me
}
Затем включите меню диспетчера загрузки при загрузке, измените:-
#GRUB_TIMEOUT_STYLE="hidden"
GRUB_TIMEOUT_STYLE="menu"
затем выполните:
root@a44h-ubuntu:/home/xxxxxxx# update-grub
Во FreeBSD ничего делать не нужно.
hd0
— первый жесткий диск, а msdos1
— s1
.
hd0,1
? действительно ли это верно, что grub2 запускаются от 1 не 0? – r004 14.01.2014, 13:14/
иswap
раздел. Как я должен предшествовать затем? большое спасибо – r004 18.01.2014, 23:13