diff options
Diffstat (limited to 'rescue')
-rwxr-xr-x | rescue/genpasswd | 10 | ||||
-rw-r--r-- | rescue/list.xml | 10 | ||||
-rwxr-xr-x | rescue/startssh | 18 | ||||
-rw-r--r-- | rescue/tree/etc/fstab | 1 | ||||
-rw-r--r-- | rescue/tree/etc/issue | 1 | ||||
-rwxr-xr-x | rescue/tree/etc/rc.sysinit | 8 |
6 files changed, 46 insertions, 2 deletions
diff --git a/rescue/genpasswd b/rescue/genpasswd new file mode 100755 index 000000000..328ced265 --- /dev/null +++ b/rescue/genpasswd @@ -0,0 +1,10 @@ +#!/usr/bin/perl + +system "stty -echo"; +print STDERR "Give a password: "; +chomp($word = <STDIN>); +print STDERR "\n"; +system "stty echo"; + +print crypt($word, join('', ('.', '/', 0..9, 'A'..'Z', 'a'..'z')[rand 64, rand 64])); +print "\n"; diff --git a/rescue/list.xml b/rescue/list.xml index e94f0c9a2..895a7d315 100644 --- a/rescue/list.xml +++ b/rescue/list.xml @@ -65,6 +65,11 @@ btrfs btrfsck btrfs-convert btrfsctl btrfs-debug-tree btrfs-map-logical btrfs-show btrfs-vol mkfs.btrfs fsck.btrfs + + dropbear dropbearkey + + screen + <if ARCH="i.86|x86_64"> mkfs.jfs fsck.jfs jfs_tune </if> @@ -247,6 +252,7 @@ termcap protocols services + shells ssh/ssh_config </from> @@ -322,7 +328,9 @@ </from> <from dir="."> <to dir="/usr/sbin"> - diskdrake-resize + diskdrake-resize + genpasswd + startssh </to> <to dir="/usr/sbin"> restore-image.sh diff --git a/rescue/startssh b/rescue/startssh new file mode 100755 index 000000000..4c48d8291 --- /dev/null +++ b/rescue/startssh @@ -0,0 +1,18 @@ +#!/bin/bash + +passwd=`genpasswd` + +if (( $? != 0 )); then + reset + exit $? +fi + +sed -E -i -e 's/^root:[^:]*:/root:'"$passwd"':/' /etc/passwd + +mkdir -p /etc/dropbear +[[ -f /etc/dropbear/dropbear_dss_host_key ]] || dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key +[[ -f /etc/dropbear/dropbear_rsa_host_key ]] || dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key + +echo "" +echo -n "Starting ssh daemon... " +dropbear && echo "OK" diff --git a/rescue/tree/etc/fstab b/rescue/tree/etc/fstab index fbafb7801..148dcd4b4 100644 --- a/rescue/tree/etc/fstab +++ b/rescue/tree/etc/fstab @@ -1,4 +1,5 @@ /dev/ram3 / ext2 defaults 1 1 /dev/fd0 /mnt/floppy auto defaults,noauto 0 0 none /proc proc defaults,noauto,ro 0 0 +devpts /dev/pts devpts defaults,noauto,rw 0 0 /dev/cdrom /mnt/cdrom auto defaults,noauto 0 0 diff --git a/rescue/tree/etc/issue b/rescue/tree/etc/issue index d4aee6d89..c5a4c7fb8 100644 --- a/rescue/tree/etc/issue +++ b/rescue/tree/etc/issue @@ -24,5 +24,6 @@ Use [1;33;40mloadkeys[0m to change your keyboard layout (eg: loadkeys fr) Use [1;33;40mmodprobe[0m to load modules (eg: modprobe snd-card-fm801) Use [1;33;40mdrvinst[0m to install drivers according to detected devices Use [1;33;40mlsparts[0m to list your partitions with types +Use [1;33;40mstartssh[0m to start an ssh daemon Use [1;33;40mrescue-gui[0m to go back to the rescue menu diff --git a/rescue/tree/etc/rc.sysinit b/rescue/tree/etc/rc.sysinit index e5164dd45..39d7dec6b 100755 --- a/rescue/tree/etc/rc.sysinit +++ b/rescue/tree/etc/rc.sysinit @@ -11,14 +11,20 @@ echo -e "\t\t\tWelcome to \\033[1;36mMageia\\033[0;39m Linux" action "Remounting root filesystem in read-write mode" mount -n -o remount,rw / ln -s /tmp/stage2/etc/* /etc 2>/dev/null +# make passwd changable +rm -f /etc/passwd +cp /tmp/stage2/etc/passwd /etc/ rm -f /dev ; cp -a /tmp/stage2/dev /dev -mkdir -p /mnt /var/log +mkdir -p /mnt /var/log /dev/pts >/etc/mtab mount -f / mount -f /proc +# mount /dev/pts and link /dev/ptmx so dropbear works +mount /dev/pts +ln -s /dev/pts/ptmx /dev/ptmx # Set the hostname. action "Setting hostname rescue" hostname rescue |