Has
Hasło podczas wyboru systemu z poziomu GRUB
Witam, na laptopie mam dwa systemy Windows 8.1 oraz Debian Wheezy. Młody ciągle używa Windowsa do gier, chciałbym zablokować mu dostęp do tego systemu poprzez wprowadzenie hasła. Oczywiście mógłbym w Windowsie założyć hasło jednak wolał bym zablokować dostęp trochę wcześniej, podczas wyboru systemu. Czy w Grubie można jakoś ustawić hasło dla danego systemu ??
A wystarczyło poszukać
https://help.ubuntu.com/community/Grub2/Passwords
jest mnóstwo tematów jakie wujek google podpowiada.... Zapewne można założyć blokade na dany system....
Kiedyś w grub v1 mogłem założyć hasło aby cokolwiek zrobić w konsoli grub1 oraz hasło na dany system
https://help.ubuntu.com/community/Grub2/Passwords
jest mnóstwo tematów jakie wujek google podpowiada.... Zapewne można założyć blokade na dany system....
Kiedyś w grub v1 mogłem założyć hasło aby cokolwiek zrobić w konsoli grub1 oraz hasło na dany system
Dzięki
, system jest zabezpieczony, żeby uruchomić Windowsa trzeba wpisać login i hasło.
Znalazłem jednak wątek który bardziej mnie zainteresował a pytanie było bardziej ciekawe niż moje http://www.elektroda.pl/rtvforum/topic2134648.html.
Otóż autor pytania chcę aby:
Dostał on odpowiedzi i podobno ją zrozumiał, jednak ja ni w ząb tego nie mogę przetłumaczyć na Polski, enigmę musiałem zostawić w drugich spodniach 
Czy może mi ktoś to bardziej wytłumaczyć ? Jak utworzyć dwa loginy do GRUBA ? w tej chwili mam
Czy mam stworzyć
a co z plikiem /etc/grub.d/30_os-prober wszędzie mam
Znalazłem jednak wątek który bardziej mnie zainteresował a pytanie było bardziej ciekawe niż moje http://www.elektroda.pl/rtvforum/topic2134648.html.
Otóż autor pytania chcę aby:
Kod: Zaznacz cały
1. wybieramy menuentry...
2. wpisujemy hasło...
- hasło nieprawidłowe -> nic się nie dzieje
- hasło prawidłowe 1 -> bootuje sie system 1 / lub ewentualnie pojawia się podmenu 1
- hasło prawidłowe 2 -> bootuje sie system 2 / lub ewentualnie pojawia się podmenu 2 Czy może mi ktoś to bardziej wytłumaczyć ? Jak utworzyć dwa loginy do GRUBA ? w tej chwili mam
Kod: Zaznacz cały
cat << EOF
set superusers="laptop"
password laptop windows
EOFKod: Zaznacz cały
cat << EOF
set superusers="laptop"
password laptop windows
EOF
cat << EOF
set superusers2="Laptop" //inny login duże L
password Laptop Debian
EOFKod: Zaznacz cały
.
.
menuentry ... --users login {...No dobra, czyli ja mam tak:Yampress pisze:To nie tak 1 hasło na 1 system lub 1 globalnie... Nie ma tak, że w zależności jakie hasło wpiszesz taki system uruchamia
Kod: Zaznacz cały
cat << EOF set superusers="laptop"
password laptop windows //windows to hasło "dałem windows żeby było łatwiej zapamiętać"
EOF cat << EOF set superusers2="Laptop" //inny login duże L
password Laptop Debian //Debian to hasło "dałem Debian żeby było łatwiej zapamiętać"
EOFKod: Zaznacz cały
set superusers="laptop"
password laptop windows //hasło
password laptop Debian //hasłoKod: Zaznacz cały
#! /bin/sh
set -e
# grub-mkconfig helper script.
# Copyright (C) 2006,2007,2008,2009 Free Software Foundation, Inc.
#
# GRUB is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# GRUB is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GRUB. If not, see <http://www.gnu.org/licenses/>.
prefix="/usr"
exec_prefix="${prefix}"
datarootdir="${prefix}/share"
. "${datarootdir}/grub/grub-mkconfig_lib"
if [ "x${GRUB_DISABLE_OS_PROBER}" = "xtrue" ]; then
exit 0
fi
if [ -z "`which os-prober 2> /dev/null`" -o -z "`which linux-boot-prober 2> /dev/null`" ] ; then
# missing os-prober and/or linux-boot-prober
exit 0
fi
# Try to load the efivars module, in case it's needed for EFI support
# to work below. Hide the errors in case it's not available, there is
# no need to scare people here.
modprobe efivars >/dev/null 2>&1 || true
OSPROBED="`os-prober | tr ' ' '^' | paste -s -d ' '`"
if [ -z "${OSPROBED}" ] ; then
# empty os-prober output, nothing doing
exit 0
fi
osx_entry() {
cat << EOF
menuentry "${LONGNAME} (${2}-bit) (on ${DEVICE})" --class osx --class darwin --class os --users login {
EOF
save_default_entry | sed -e "s/^/\t/"
prepare_grub_to_access_device ${DEVICE} | sed -e "s/^/\t/"
cat << EOF
load_video
set do_resume=0
if [ /var/vm/sleepimage -nt10 / ]; then
if xnu_resume /var/vm/sleepimage; then
set do_resume=1
fi
fi
if [ \$do_resume = 0 ]; then
xnu_uuid ${OSXUUID} uuid
if [ -f /Extra/DSDT.aml ]; then
acpi -e /Extra/DSDT.aml
fi
$1 /mach_kernel boot-uuid=\${uuid} rd=*uuid
if [ /System/Library/Extensions.mkext -nt /System/Library/Extensions ]; then
xnu_mkext /System/Library/Extensions.mkext
else
xnu_kextdir /System/Library/Extensions
fi
if [ -f /Extra/Extensions.mkext ]; then
xnu_mkext /Extra/Extensions.mkext
fi
if [ -d /Extra/Extensions ]; then
xnu_kextdir /Extra/Extensions
fi
if [ -f /Extra/devprop.bin ]; then
xnu_devprop_load /Extra/devprop.bin
fi
if [ -f /Extra/splash.jpg ]; then
insmod jpeg
xnu_splash /Extra/splash.jpg
fi
if [ -f /Extra/splash.png ]; then
insmod png
xnu_splash /Extra/splash.png
fi
if [ -f /Extra/splash.tga ]; then
insmod tga
xnu_splash /Extra/splash.tga
fi
fi
}
EOF
}
for OS in ${OSPROBED} ; do
DEVICE="`echo ${OS} | cut -d ':' -f 1`"
LONGNAME="`echo ${OS} | cut -d ':' -f 2 | tr '^' ' '`"
LABEL="`echo ${OS} | cut -d ':' -f 3 | tr '^' ' '`"
BOOT="`echo ${OS} | cut -d ':' -f 4`"
if [ -z "${LONGNAME}" ] ; then
LONGNAME="${LABEL}"
fi
echo "Found ${LONGNAME} on ${DEVICE}" >&2
case ${BOOT} in
chain)
cat << EOF
menuentry "${LONGNAME} (on ${DEVICE})" --class windows --class os --users login {
EOF
save_default_entry | sed -e "s/^/\t/"
prepare_grub_to_access_device ${DEVICE} | sed -e "s/^/\t/"
case ${LONGNAME} in
Windows\ Vista*|Windows\ 7*|Windows\ Server\ 2008*)
;;
*)
cat << EOF
drivemap -s (hd0) \${root}
EOF
;;
esac
cat <<EOF
chainloader +1
}
EOF
;;
efi)
EFIPATH=${DEVICE#*@}
DEVICE=${DEVICE%@*}
cat << EOF
menuentry "${LONGNAME} (UEFI on ${DEVICE})" --class windows --class os --users login {
EOF
save_default_entry | sed -e "s/^/\t/"
prepare_grub_to_access_device ${DEVICE} | sed -e "s/^/\t/"
cat <<EOF
chainloader ${EFIPATH}
}
EOF
;;
linux)
LINUXPROBED="`linux-boot-prober ${DEVICE} 2> /dev/null | tr ' ' '^' | paste -s -d ' '`"
prepare_boot_cache=
for LINUX in ${LINUXPROBED} ; do
LROOT="`echo ${LINUX} | cut -d ':' -f 1`"
LBOOT="`echo ${LINUX} | cut -d ':' -f 2`"
LLABEL="`echo ${LINUX} | cut -d ':' -f 3 | tr '^' ' '`"
LKERNEL="`echo ${LINUX} | cut -d ':' -f 4`"
LINITRD="`echo ${LINUX} | cut -d ':' -f 5`"
LPARAMS="`echo ${LINUX} | cut -d ':' -f 6- | tr '^' ' '`"
if [ -z "${LLABEL}" ] ; then
LLABEL="${LONGNAME}"
fi
if [ "${LROOT}" != "${LBOOT}" ]; then
LKERNEL="${LKERNEL#/boot}"
LINITRD="${LINITRD#/boot}"
fi
cat << EOF
menuentry "${LLABEL} (on ${DEVICE})" --class gnu-linux --class gnu --class os --users login {
EOF
save_default_entry | sed -e "s/^/\t/"
if [ -z "${prepare_boot_cache}" ]; then
prepare_boot_cache="$(prepare_grub_to_access_device ${LBOOT} | sed -e "s/^/\t/")"
fi
printf '%s\n' "${prepare_boot_cache}"
cat << EOF
linux ${LKERNEL} ${LPARAMS}
EOF
if [ -n "${LINITRD}" ] ; then
cat << EOF
initrd ${LINITRD}
EOF
fi
cat << EOF
}
EOF
done
;;
macosx)
OSXUUID="`grub-probe --target=fs_uuid --device ${DEVICE} 2> /dev/null`"
osx_entry xnu_kernel 32
osx_entry xnu_kernel64 64
;;
hurd)
cat << EOF
menuentry "${LONGNAME} (on ${DEVICE})" --class hurd --class gnu --class os --users login {
EOF
save_default_entry | sed -e "s/^/\t/"
prepare_grub_to_access_device ${DEVICE} | sed -e "s/^/\t/"
grub_device="`${grub_probe} --device ${DEVICE} --target=drive`"
mach_device="`echo "${grub_device}" | sed -e 's/(\(hd.*\),msdos\(.*\))/\1s\2/'`"
grub_fs="`${grub_probe} --device ${DEVICE} --target=fs`"
case "${grub_fs}" in
*fs) hurd_fs="${grub_fs}" ;;
*) hurd_fs="${grub_fs}fs" ;;
esac
cat << EOF
multiboot /boot/gnumach.gz root=device:${mach_device}
module /hurd/${hurd_fs}.static ${hurd_fs} --readonly \\
--multiboot-command-line='\${kernel-command-line}' \\
--host-priv-port='\${host-port}' \\
--device-master-port='\${device-port}' \\
--exec-server-task='\${exec-task}' -T typed '\${root}' \\
'\$(task-create)' '\$(task-resume)'
module /lib/ld.so.1 exec /hurd/exec '\$(exec-task=task-create)'
}
EOF
;;
*)
echo " ${LONGNAME} is not yet supported by grub-mkconfig." >&2
;;
esac
donedawać w /etc/grub.d/00_header
Kod: Zaznacz cały
set superusers1="laptop"
set superusers2="komputer"[/i]
Kod: Zaznacz cały
[I]--users login1
[I]--users login2[/I]
[/I]Do pliku /etc/grub.d/40_custom dodajesz analogiczny. U Ciebie oczywiście nie tak samo jak pomniżej ale to przykład i wyszukaj analogie.
superuser może uruchamiać wszystko, edytować wszystko w konsoli gruba
Każdy może uruchamiać linux
anna uruchomi Fedore jeśli poda hasło
set superusers="joe"
password joe joespassword
password anna annaspassword
menuentry ' Linux '
{ set root=(hd0,msdos1)
linux /vmlinuz }
menuentry 'Fedora' --user anna
{ set root=(hd0,msdos2)
linux /vmlinuz }
superuser może uruchamiać wszystko, edytować wszystko w konsoli gruba
Każdy może uruchamiać linux
anna uruchomi Fedore jeśli poda hasło