Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#701 Le 09/03/2008, à 20:06

otax

Re : Customisation/Création de Live CD/USB

> Frafa

OK, je retenterai.
Merci.


Cours de Japonais par Julien Fontanier : https://www.youtube.com/channel/UChFfLN … 7NscGmLLLg

Hors ligne

#702 Le 10/03/2008, à 00:11

U-topic

Re : Customisation/Création de Live CD/USB

Bonjour frafra !
Ca fait quelque temps que je n'avait plus tester ton scriptet chapeau il a bien évolué !
J'ai voulu faire une clef pour un pote mais quand je boote dessus j'atterie dans une busybox....Une idée qui me permettrais d'éviter de refaire toute la customistaion ??:)
Merci!

Hors ligne

#703 Le 10/03/2008, à 00:56

frafa

Re : Customisation/Création de Live CD/USB

==> U-topic
lo

ben deja ouvre gparted et verifie que tu as bien 2 partitions
1 en ext3 label extlinux-ro avec drapeau boot actvé
et 1 en ext3 avec label casper-rw

si tout te parrait ok
essaie de booter avec qemu via le mode:
Démarrer qemu pour vérification de boot
pour valider que clé est ok...

Dernière modification par frafa (Le 10/03/2008, à 00:57)

Hors ligne

#704 Le 10/03/2008, à 01:39

U-topic

Re : Customisation/Création de Live CD/USB

Ok jessai ca demain!
Merci pour ta reponse smile

Hors ligne

#705 Le 10/03/2008, à 14:33

otax

Re : Customisation/Création de Live CD/USB

>Frafa

Les 2 partitions en ext3 ?
Sur l'autre topic : http://forum.ubuntu-fr.org/viewtopic.php?id=163228
La capture y est en fat32 et ext2.
Désolé si c'est écrit ailleurs, j'avoue ne pas avoir lu tout le développement du script.:rolleyes:


Cours de Japonais par Julien Fontanier : https://www.youtube.com/channel/UChFfLN … 7NscGmLLLg

Hors ligne

#706 Le 10/03/2008, à 18:50

frafa

Re : Customisation/Création de Live CD/USB

==> otax
doc pas a jour sorry...
depuis le script a evoluté vers ext3 pour les 2 partitions
avec extlinux:
http://syslinux.zytor.com/extlinux.php

Hors ligne

#707 Le 10/03/2008, à 22:03

otax

Re : Customisation/Création de Live CD/USB

OK, merci de l'info.


Cours de Japonais par Julien Fontanier : https://www.youtube.com/channel/UChFfLN … 7NscGmLLLg

Hors ligne

#708 Le 11/03/2008, à 16:49

Billybug

Re : Customisation/Création de Live CD/USB

wouaouuu... ça vaut un ptit doc en wiki tout ça non?    big_smile


Linux est à Windows ce que l'électrécité serait au pétrole !

BillyBUG

Hors ligne

#709 Le 11/03/2008, à 19:28

U-topic

Re : Customisation/Création de Live CD/USB

frafa a écrit :

==> U-topic
lo

ben deja ouvre gparted et verifie que tu as bien 2 partitions
1 en ext3 label extlinux-ro avec drapeau boot actvé
et 1 en ext3 avec label casper-rw

si tout te parrait ok
essaie de booter avec qemu via le mode:
Démarrer qemu pour vérification de boot
pour valider que clé est ok...

Meme erreur avec qemu...(ou alors j'ai pas sélectrionné le bon mode ?Comment fait on smile)
La clef est ok...
A et il y a un message d'erreur du style /dev/ram not exist dropping shell ...

Dernière modification par U-topic (Le 11/03/2008, à 19:29)

Hors ligne

#710 Le 11/03/2008, à 20:24

frafa

Re : Customisation/Création de Live CD/USB

==> U-topic
lo,

dit m'en un peu plus sur ce que tu as fait...
as-tu customisé ou juste créer liveUSB ?
si tu as customisé la liste passe complete des soft que tu as installé ?
quel livecd as-tu utilisé ?
branche ta clé et passe moi STP le retour de:

blkid  && fdisk -l && ls -l /media/extlinux-ro /media/extlinux-ro/casper

pour booter avec qemu imperatif d'utiliser le menu:
Mode live qemu generic.all_generic_ide=1

Dernière modification par frafa (Le 11/03/2008, à 20:30)

Hors ligne

#711 Le 12/03/2008, à 05:57

frafa

Re : Customisation/Création de Live CD/USB

All-Users
Bonjour,

si il y en a que ca intéresse je vous file une conf qui pour moi
marche bien en dual screen sur Eee-PC

http://frafa.free.fr/liveusb/Eee_PC_dual_xorg.conf
pour zapper dans les différents modes je vous conseille cet applet: resapplet

PS: doc ==> http://intellinuxgraphics.org/man.html

Dernière modification par frafa (Le 12/03/2008, à 06:50)

Hors ligne

#712 Le 12/03/2008, à 18:21

U-topic

Re : Customisation/Création de Live CD/USB

 blkid  && fdisk -l && ls -l /media/extlinux-ro /media/extlinux-ro/casper
/dev/sda1: UUID="704465FC4465C586" TYPE="ntfs" 
/dev/sda2: UUID="be25f8ef-bb69-411d-9594-a22841e3ec5d" SEC_TYPE="ext2" TYPE="ext3" 
/dev/sdb1: TYPE="swap" UUID="e03a4ca4-8c9d-489f-b401-548a0f28830e" 
/dev/sdb3: UUID="e7e15001-7e0f-4948-9488-8dfd74cee35d" SEC_TYPE="ext2" TYPE="ext3" 
/dev/sdb4: LABEL="Stockage" UUID="8dcad32c-f8ad-446f-9fee-b00435c15dd6" SEC_TYPE="ext2" TYPE="ext3" 
/dev/sdc1: LABEL="extlinux-ro" UUID="f3cc55c7-3c36-42d1-861f-eb9b5565311d" SEC_TYPE="ext2" TYPE="ext3" 
/dev/sdc2: LABEL="casper-rw" UUID="9eae637e-8aa3-445c-9dd3-ff420c16afff" SEC_TYPE="ext2" TYPE="ext3" 

Disque /dev/sdc: 160.0 Go, 160041885696 octets
255 heads, 63 sectors/track, 19457 cylinders
Units = cylindres of 16065 * 512 = 8225280 bytes
Identifiant disque: 0x0000b6e7

Périphérique Amorce    Début         Fin      Blocs    Id  Système
/dev/sdc1   *           1         158     1269103+  83  Linux
/dev/sdc2             159       19457   155019217+  83  Linux
/media/extlinux-ro:
total 10804
-r-xr-xr-x  1 root root      42 2008-03-09 20:00 autorun.inf
dr-xr-xr-x 10 root root    4096 2008-03-09 20:00 bin
dr-xr-xr-x  2 root root    4096 2008-03-09 22:35 casper
-rw-r--r--  1 root root    3720 2008-03-09 22:35 chain.c32
dr-xr-xr-x  6 root root    4096 2008-03-09 20:00 disctree
dr-xr-xr-x  3 root root    4096 2008-03-09 20:00 dists
-rw-r--r--  1 root root    1251 2008-03-09 20:00 extlinux.conf
-r--r--r--  1 root root   12800 2008-03-09 22:51 extlinux.sys
-r--r--r--  1 root root     715 2008-03-09 20:00 f10.txt
-r--r--r--  1 root root     842 2008-03-09 20:00 f1.txt
-r--r--r--  1 root root     506 2008-03-09 20:00 f2.txt
-r--r--r--  1 root root     612 2008-03-09 20:00 f3.txt
-r--r--r--  1 root root     416 2008-03-09 20:00 f4.txt
-r--r--r--  1 root root     808 2008-03-09 20:00 f5.txt
-r--r--r--  1 root root    1071 2008-03-09 20:00 f6.txt
-r--r--r--  1 root root     913 2008-03-09 20:00 f7.txt
-r--r--r--  1 root root    1070 2008-03-09 20:00 f8.txt
-r--r--r--  1 root root     745 2008-03-09 20:00 f9.txt
-rw-r--r--  1 root root 7524143 2008-03-09 22:35 initrd.gz
dr-xr-xr-x  2 root root    4096 2008-03-09 19:59 install
drwx------  2 root root   16384 2008-03-09 19:56 lost+found
-rw-r--r--  1 root root   47404 2008-03-09 22:35 mboot.c32
-r--r--r--  1 root root   34531 2008-03-09 22:46 md5sum.txt
-rw-r--r--  1 root root   50352 2008-03-09 22:35 menu.c32
-r--r--r--  1 root root  103204 2008-03-09 20:00 mt86plus
dr-xr-xr-x  2 root root    4096 2008-03-09 20:00 pics
dr-xr-xr-x  4 root root    4096 2008-03-09 20:00 pool
dr-xr-xr-x  2 root root    4096 2008-03-09 20:00 preseed
dr-xr-xr-x  5 root root    4096 2008-03-09 20:00 programs
-r--r--r--  1 root root     222 2008-03-09 19:59 README.diskdefines
-rw-r--r--  1 root root   69020 2008-03-09 20:00 splash.jpg
-r-xr-xr-x  1 root root  255358 2008-03-09 20:00 start.bmp
-r-xr-xr-x  1 root root   38912 2008-03-09 20:00 start.exe
-r-xr-xr-x  1 root root      95 2008-03-09 20:00 start.ini
lrwxrwxrwx  1 root root       1 2008-03-09 20:00 ubuntu -> .
-r-xr-xr-x  1 root root  193110 2008-03-09 19:59 ubuntu.ico
-rw-r--r--  1 root root  137992 2008-03-09 22:35 vesamenu.c32
-rw-r--r--  1 root root 1764536 2008-03-09 22:35 vmlinuz
-r--r--r--  1 root root  644264 2008-03-09 20:00 wubi-cdboot.exe

/media/extlinux-ro/casper:
total 1139052
-r--r--r-- 1 root root      40423 2008-03-09 22:35 filesystem.manifest
-r--r--r-- 1 root root      40328 2008-03-09 22:35 filesystem.manifest-desktop
-r--r--r-- 1 root root 1165164544 2008-03-09 22:45 filesystem.squashfs

Voilou...

Hors ligne

#713 Le 12/03/2008, à 18:27

frafa

Re : Customisation/Création de Live CD/USB

==> U-topic
tout a l'air ok...
repond aux precisions demandés STP
et teste comme décrit avec qemu

Hors ligne

#714 Le 14/03/2008, à 16:53

Oliv7

Re : Customisation/Création de Live CD/USB

Bonjour Frafra,

Je viens de découvrir ton script qui est très bien, mais pourrais je te suggérer quelques évolutions qu'il ne me semble pas avoir vues:

-Serait-il possible de pouvoir utiliser ce script à partir d'un livecd et d'un point de montage amovible pour l'environnement chrooté. Ce qui permettrait de pouvoir utiliser un pc windows sans rien installer dessus, no OS, ni espace disque.

-Serait-il possible de pouvoir utiliser des scripts à utiliser dans le chroot ou en dehors du chroot que l'on spécifierait par exemple au début de live_custom.sh (en quelque sorte des plugins => pour moi ça sera un plugin d'environnement xampp+blog+cacti+ossec)

-Serait-il possible de modifier l'utilisateur par défaut des versions ubuntu.

J'ai déjà effectué ces modifications à la sortie de gutsy sur le Ubuntu Customization Kit, mais c'est du quick and dirty (very dirty), mais fais moi savoir si tu veux les sources (sur e-mail).

@+Oliv

#715 Le 14/03/2008, à 18:41

frafa

Re : Customisation/Création de Live CD/USB

==> Oliv7
Salut,

je te passe les differents chemins pour faire ce que tu veut
cetraines de ces modif seront ajoutées au script

pour changer user voir:
/mnt/tmp_modif_liveusb/etc/adduser.conf
autres modif possibles plus hard:
/mnt/tmp_modif_liveusb/etc/casper.conf

pour passer des commandes en chroot,
a faire pendant que xnest est ouvert en mode custom
depuis un terminal

sudo -s
#pass
chroot /mnt/tmp_modif_liveusb
export LANG="$(cat /opt/lang.txt)"
export HOME=/home/liveusb
export LC_ALL=C
export DISPLAY=localhost:5.0 
#ici ta commande

pour lancer le script depuis un livecd, il faut delocaliser /mnt:

sudo -s
#pass

#modifier par un dossier genre celui de win monté
DOSSIER_TRAVAIL=/media/le_point_de_montage_de_win_ou_autre

#creer fichier image vide
dd if=/dev/zero of="${DOSSIER_TRAVAIL}/travail.img" bs=1M count=8192

#formater en ext3 le fichier image
mke2fs -F -j -L ext3-travail "${DOSSIER_TRAVAIL}/travail.img"

#verifier que /mnt est bien vide
if [ "$(ls -s /mnt | head -1 | awk '{print $2}')" != "0" ]; then 
echo -e "\033[1;47;31m Erreur: Sur Dossier de travail! /mnt n'est pas vide \033[0m" ;
exit 0
fi

#monter le fichier image dans /mnt
mount -t ext3 -o loop,rw,users "${DOSSIER_TRAVAIL}/travail.img" /mnt

#relancer le script, SI LES COMMANDES CI-DESSUS NE FONT PAS D'ERREUR ...
###############################################

#aller racine maison
cd $HOME
#efacer toutes les anciennes versions de mes scripts
rm ./live_custom.sh*
#telecharger nouvelle version
wget http://frafa.free.fr/liveusb/live_custom.sh
#rendre executable
chmod +x ./live_custom.sh
#executer la nouvelle version
sudo ./live_custom.sh

Hors ligne

#716 Le 14/03/2008, à 22:01

Oliv7

Re : Customisation/Création de Live CD/USB

Merci Frafra,

Ok pour le Dossier_travail et pour l'utilisateur

Pour passer les commandes au chroot la solution que tu préconises est ok, mais elle reste manuelle.

Avec UCK, il existe la possibilité d'appeler un script que tu modifies suivant tes besoins, (du style tous les apt-get dont tu as besoins, les compilations de paquets sources éventuelles et la configuration des paramètres avec des sed... awk dans les fichiers). Ce script est exécuté automatiquement lors du chroot, avec les configurations de l'environnement dans la langue choisie (dans le cas d'uck).

L'intérêt  s'est que quand tu peux recréer un live cd custom identique à celui que tu as déjà mais sans avoir besoin de l'iso. Une iso de base et le script suffise.

L'intérêt également c'est de pouvoir apporter des extensions (ou des plugins) à partir de scripts rapportés:

Par exemple, un script qui va te créer un environnement de développement intranet (Dans mon cas Xampp+cacti+ossec), un environnement de desktop (avec tous les logiciels préinstallés, comme font la majorité des personnes avec ton script) ou un environnement spécifique de sécurité (nmap, kismet, snort, nessus, metasploit, aircrack, ...) ou encore d'autres choses ...

Chacun pouvant apporter sa contribution avec son script de customization.

J'ai essayé de faire ça avec uck pour mon besoin personnel mais ton script est mieux car il supporte plus de livecd.

Voilà @+

Oliv

#717 Le 14/03/2008, à 22:32

Oliv7

Re : Customisation/Création de Live CD/USB

RE-

En l'occurence voici le script que j'utilise avec uck pour faire un AP (il est en partie boggé, donc inutilisable tel quel)

#!/bin/bash


function failure()
{
	echo "$@"
	exit 1
}

function prepare_install()
{
	#try 2 times to avoid slow proxies failures
	apt-get update || apt-get update || failure "apt-get update failed, error=$?"
}

function install_packages()
{
	apt-get install --assume-yes --force-yes "$@" || failure "apt-get install $@ failed, error=$?"
##	apt-get install --assume-yes --force-yes  "$@" 
}

function remove_packages()
{
	apt-get autoremove --purge --assume-yes --force-yes "$@" || failure "apt-get remove $@ failed, error=$?"
}
export HOME=/etc/skel
export LC_ALL=C

NET_IFACE="eth0"
LOCAL_IFACE="eth1"
AP_WIFI="no"
OLD_LOCAL_IFACE="ath0"
ATH_LOCAL_IFACE="wifi0"

##DEPOTS UPDATE
echo "
deb http://archive.ubuntu.com/ubuntu gutsy main restricted universe multiverse
#deb-src http://archive.ubuntu.com/ubuntu gutsy main restricted universe multiverse

## Uncomment the following two lines to add software from the 'universe'
## repository.
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## universe WILL NOT receive any review or updates from the Ubuntu security
## team.
# deb http://archive.ubuntu.com/ubuntu gutsy universe
# deb-src http://archive.ubuntu.com/ubuntu gutsy universe

deb http://security.ubuntu.com/ubuntu gutsy-security main restricted universe multiverse
#deb-src http://security.ubuntu.com/ubuntu gutsy-security main restricted universe multiverse

## MEDIBUNTU
deb http://fr.packages.medibuntu.org/ gutsy free non-free

## Wine
deb http://wine.budgetdedicated.com/apt gutsy main

## Tor
#deb     http://mirror.noreply.org/pub/tor sid main
#deb-src http://mirror.noreply.org/pub/tor sid main
" > /etc/apt/sources.list
 
##Key MEDIBUNTU
wget -q http://fr.packages.medibuntu.org/medibuntu-key.gpg -O- | sudo apt-key add -
##Key WINE
wget -q http://wine.budgetdedicated.com/apt/387EE263.gpg -O- | sudo apt-key add -

##Key TOR
#gpg --keyserver subkeys.pgp.net --recv 94C09C7F
#gpg --fingerprint 94C09C7F
#gpg --export 94C09C7F | sudo apt-key add -


SCRIPT_DIR=`dirname "$0"`
. "$SCRIPT_DIR/gui.sh"

LIVECD_LANGS=`cat "$SCRIPT_DIR/language_packs"`
RUN_MANUAL_CUSTOMIZATIONS=`cat "$SCRIPT_DIR/run_manual_customizations"`

ROOT_MYSQL_PWD=`cat "$SCRIPT_DIR/ROOT_MYSQL_PWD"`
SNORT_MYSQL_PWD=`cat "$SCRIPT_DIR/SNORT_MYSQL_PWD"`
USERNAME=`cat "$SCRIPT_DIR/USERNAME"`
USERFULLNAME=`cat "$SCRIPT_DIR/USERFULLNAME"`
HOST=`cat "$SCRIPT_DIR/HOST"`
PASSWORD_CRYPT=`cat "$SCRIPT_DIR/PASSWORD_CRYPT"`



if [ -z "$LIVECD_LANGS" ]; then
	failure "Live CD language not set, please put language packs codes (for example: en, pl, fr) into $SCRIPT_DIR/language_packs"
fi

DESKTOP_FLAVOURS=`cat "$SCRIPT_DIR/desktop_types"`


 
prepare_install || failure "Preparing installation failed, error=$?"

#REmove package
install_packages deborphan
 
install_packages deborphan
remove_packages openoffice.org-common avahi-daemon avahi-autoipd libavahi-core5 
remove_packages firefox thunderbird 
remove_packages 
remove_packages gimp abiword-common totem-xine
remove_packages brasero gparted 
remove_packages pidgin gutsy-wallpapers hpijs gnumeric
remove_packages libsane ubiquity samba-common synaptic


remove_packages `deborphan --guess-all`

#Warning
install_packages mysql-server libphp-adodb snort-mysql 

#System
install_packages squashfs-tools madwifi-tools wireless-tools build-essential linux-headers-$(uname -r) wget || failure "Installing system packs failed, error=$?"
#Multimedia 
#Dev
install_packages perl libnet-ssleay-perl libauthen-pam-perl libmd5-perl libio-pty-perl
#install_packages build-essential subversion mkisofs dpkg-dev linux-headers-`uname -r` || failure "Installing Dev packs part 1 failed, error=$?"
#Network
install_packages openssh-server sleuthkit webalizer || failure "Installing Mysql packs part 1 failed, error=$? Have you stopped your local mysql server ?"
install_packages dhcp3-server hostapd apache2 php5-mysql || failure "Installing Network packs part 2 failed, error=$?"
install_packages whois php5-gd php-pear traceroute || failure "Installing Network packs part 3 failed, error=$?"

#IT Sec
install_packages nmap ntop shorewall  || failure "Installing It Sec packs part 1 failed, error=$?"
install_packages dnsmasq kismet macchanger tcpdump dsniff netcat p0f || failure "Installing It Sec packs part 2 failed, error=$?"
#install_packages syslog-ng
#Privacy
#install_packages tor privoxy 

echo "Installing language packs ($LIVECD_LANGS)..."

PACKAGES_TO_INSTALL=""
LANGPACKS_CONCATENATED=""

#for LANGPACK in $LIVECD_LANGS; do
#	PACKAGES_TO_INSTALL="$PACKAGES_TO_INSTALL language-pack-$LANGPACK language-support-$LANGPACK"

#	if [ "$DESKTOP_FLAVOURS" ]; then
#		for FLAVOUR in $DESKTOP_FLAVOURS; do
#			PACKAGES_TO_INSTALL="$PACKAGES_TO_INSTALL language-pack-$FLAVOUR-$LANGPACK"
#		done
#	fi

#	if [ -z "$LANGPACKS_CONCATENATED" ]; then
#		LANGPACKS_CONCATENATED="$LANGPACK"
#	else
#		LANGPACKS_CONCATENATED="$LANGPACKS_CONCATENATED|$LANGPACK"
#	fi
#done
#echo "install_packages $PACKAGES_TO_INSTALL"
#install_packages $PACKAGES_TO_INSTALL || failure "Installing language packs failed, error=$?"

#NOTE: we first install language pack, then remove others as installing language pack might pull packages
#which were not previously present
echo "Removing unnecessary language packages..."
REMOVED_PACKAGES=`dpkg-query --show | cut -f1 | grep -E '^(language-pack|language-support)' | grep -v -E "[-]($LANGPACKS_CONCATENATED)\>"`
remove_packages $REMOVED_PACKAGES || failure "Removing packages failed, error=$?"

#Compilation relative link
#ln -s /usr/src/linux-`uname -r` /lib/modules/`uname -r`/build

#OSSEC config
#cd /etc/skel
#echo "#OSSEC server Config"
#wget http://www.ossec.net/files/ossec-hids-latest.tar.gz
#tar -zxvf ossec-hids-*.tar.gz
#cd ossec-hids-*
#sudo ./install.sh
#wget http://www.ossec.net/files/ui/ossec-wui-0.2.tar.gz
#tar -zxvf ossec-wui-0.2.tar.gz
#sudo mv ossec-wui-0.2 /var/www/ossec-wui
#cd .. 
#rm -r ossec-hids-*
#cd /var/www/ossec-wui
#echo "## Server Wui Config"
#sudo ./setup.sh
#grep -q '^ossec' /etc/group && sed -i -e "/^ossec/s/$/www-data/" /etc/group
#chmod 770 tmp/
#chgrp www-data tmp/
#echo "001 \n
#002 \n
#003  \n
#004 test908 192.168.1.28 2c54f90a607b5b56284d722f8031821b0c3d0f29b882eead067871657f428fa3
#005 test201 192.168.1.29 6c2ece8aa6cfeeb0ca6b323a5b56197a57a6988f7d6fb0c26fac44cc5420c636
#" > /var/ossec/etc/client.keys
#Windows Agent key test201
#MDA1IHRlc3QyMDEgMTkyLjE2OC4xLjI5IDZjMmVjZThhYTZjZmVlYjBjYTZiMzIzYTViNTYxOTdhNTdhNjk4OGY3ZDZmYjBjMjZmYWM0NGNjNTQyMGM2MzY=
#Windows Agent key test908
#MDA0IHRlc3Q5MDggMTkyLjE2OC4xLjI4IDJjNTRmOTBhNjA3YjViNTYyODRkNzIyZjgwMzE4MjFiMGMzZDBmMjliODgyZWVhZDA2Nzg3MTY1N2Y0MjhmYTM=

#WEBMIN CONFIG
cd /etc/skel
echo "#WEBMIN config"
wget http://surfnet.dl.sourceforge.net/sourceforge/webadmin/webmin_1.380_all.deb
sudo dpkg -i webmin_1.380_all.deb
sudo /usr/share/webmin/changepass.pl /etc/webmin root Hiktit8




cd /etc/skel/
##SNORT
#Mysql Config for snort
#echo "ENTER your mysql ROOT password"
#read  ROOT_MYSQL_PWD < /dev/tty
#echo "ENTER your mysql SNORT password"
#read  SNORT_MYSQL_PWD < /dev/tty
echo "#Mysql Config for snort"
echo "Snort Table Creation"
echo "create database snort;
grant insert,select on root.* to snort@localhost;
set password for snort@localhost=password('$SNORT_MYSQL_PWD');
grant create,delete,insert,select,update on snort.* to snort@localhost;
grant create,delete,insert,select,update on snort.* to snort;" > snort_db.sql
mysql -u root < snort_db.sql mysql || failure "Creating Snort Database Part 1 failed, error=$?"
cd /usr/share/doc/snort-mysql/
gunzip create_mysql.gz
mysql -u root < /usr/share/doc/snort-mysql/create_mysql snort || failure "Creating Snort Database Part 2 failed, error=$?"
cd /etc/skel/
rm snort_db.sql

#Base config for Snort
echo "#Base config for Snort"
cd /etc/skel/
( 
wget http://switch.dl.sourceforge.net/sourceforge/secureideas/base-1.3.8.tar.gz 
sudo tar -xvzf base*
mkdir /var/www/base
cp -a base-1.3.8/* /var/www/base
cp /var/www/base/base_conf.php.dist /var/www/base/base_conf.php 

cat /var/www/base/base_conf.php | sed -i -e "s/\$BASE_urlpath = '';/\$BASE_urlpath = '\/base';/" /var/www/base/base_conf.php
cat /var/www/base/base_conf.php | sed -i -e "s/\$DBlib_path = '';/\$DBlib_path = '\/usr\/share\/php\/adodb\/';/" /var/www/base/base_conf.php
cat /var/www/base/base_conf.php | sed -i -e "s/\$alert_dbname   = 'snort_log';/\$alert_dbname   = 'snort';/" /var/www/base/base_conf.php
cat /var/www/base/base_conf.php | sed -i -e "s/\$alert_password = 'mypassword';/\$alert_password = '$SNORT_MYSQL_PWD';/" /var/www/base/base_conf.php

#Graph for base
(
pear install Image_Color
pear install Image_Canvas-alpha
pear install Image_Graph-alpha) || failure "Installing Graph for Base Part 1 failed, error=$?"

#Snort config
echo "#Snort config"
cat /etc/snort/snort.debian.conf | sed -i -e "s/DEBIAN_SNORT_HOME_NET=\"192.168.0.0\/16\"/DEBIAN_SNORT_HOME_NET=\"192.168.0.0\/24,192.168.1.0\/24\"/" /etc/snort/snort.debian.conf
cat /etc/snort/snort.debian.conf | sed -i -e "s/DEBIAN_SNORT_INTERFACE=\"eth0\"/DEBIAN_SNORT_INTERFACE=\"$NET_IFACE $LOCAL_IFACE\"/" /etc/snort/snort.debian.conf
cat /etc/snort/snort.conf | sed -i -e "s/output database: log, mysql,/output database: log, mysql, user=snort password=$SNORT_MYSQL_PWD dbname=snort host=localhost/" /etc/snort/snort.conf
cp /etc/snort/snort.conf /etc/snort/snort.$NET_IFACE.conf
cp /etc/snort/snort.conf /etc/snort/snort.$LOCAL_IFACE.conf
rm /etc/snort/db-pending-config
) || failure "Fetching base for snort Part 1 failed, error=$?"
#Snort cron task
echo "
#!/bin/sh
#snort restarting
if /etc/init.d/snort status | grep fail 
then
rm /var/run/snort_$LOCAL_IFACE.pid.lck
rm /var/run/snort_$NET_IFACE.pid.lck
/etc/init.d/snort stop
/etc/init.d/snort start
date >> /var/log/snortrestart
fi
" > /usr/local/bin/snortcheck
echo "*/1 * * * * root /usr/local/bin/snortcheck >/dev/null 2>&1" >> /etc/cron.d/snortcheck
sudo chmod +x /usr/local/bin/snortcheck
sudo chmod +x /etc/cron.d/snortcheck



#dhcp3-server config
echo "#dhcp3-server config"
echo "
ddns-update-style none;
authoritative;
log-facility local7;
subnet 192.168.1.0 netmask 255.255.255.0 {
	  range 192.168.1.26 192.168.1.30;
	  option domain-name-servers 212.27.53.252, 212.27.54.252;
	  option domain-name \"internal.example.org\";
	  option routers 192.168.1.254;
	  option broadcast-address 192.168.1.255;
	  default-lease-time 72000;
	  max-lease-time 7200;

host blackelk {
	hardware ethernet 00:14:85:52:CA:0E;
	fixed-address 192.168.1.30;
}
host test201 {
	hardware ethernet 00:00:00:00:00:10;
	fixed-address 192.168.1.29;
}
host test908 {
	hardware ethernet 08:00:46:2F:3E:15;
	fixed-address 192.168.1.28;
}
host port {
hardware ethernet 00:16:CE:36:A9:8F;
	fixed-address 192.168.1.27;
}
}
" > /etc/dhcp3/dhcpd.conf




cat /etc/default/dhcp3-server | sed -i -e "s/INTERFACES=\"\"/INTERFACES=\"$LOCAL_IFACE\"/" /etc/default/dhcp3-server

#hostapd config
if [ $AP_WIFI = "yes" ] ; then
	echo "#hostapd config"
	cat /etc/hostapd/hostapd.conf | sed -i -e "s/interface=wlan0/interface=$LOCAL_IFACE/" /etc/hostapd/hostapd.conf
	cat /etc/hostapd/hostapd.conf | sed -i -e "s/# driver=hostap/driver=madwifi/" /etc/hostapd/hostapd.conf
	cat /etc/hostapd/hostapd.conf | sed -i -e "s/ssid=test/ssid=WANADOO-2KYW/" /etc/hostapd/hostapd.conf
	cat /etc/hostapd/hostapd.conf | sed -i -e "s/#wpa=1/wpa=1/" /etc/hostapd/hostapd.conf
	cat /etc/hostapd/hostapd.conf | sed -i -e "s/#wpa_passphrase=secret passphrase/wpa_passphrase=Doussard74210/" /etc/hostapd/hostapd.conf
	cat /etc/hostapd/hostapd.conf | sed -i -e "s/#wpa_key_mgmt=WPA-PSK WPA-EAP/wpa_key_mgmt=WPA-PSK/" /etc/hostapd/hostapd.conf
	cat /etc/hostapd/hostapd.conf | sed -i -e "s/#wpa_pairwise=TKIP CCMP/wpa_pairwise=TKIP/" /etc/hostapd/hostapd.conf
	cat /etc/hostapd/hostapd.conf | sed -i -e "s/#wpa_group_rekey=600/wpa_group_rekey=600/" /etc/hostapd/hostapd.conf
	cat /etc/hostapd/hostapd.conf | sed -i -e "s/#wpa_gmk_rekey=86400/wpa_gmk_rekey=86400/" /etc/hostapd/hostapd.conf

	cat /etc/default/hostapd | sed -i -e "s/#RUN_DAEMON=\"yes\"/RUN_DAEMON=\"yes\"/" /etc/default/hostapd
	cat /etc/default/hostapd | sed -i -e "s/#DAEMON_CONF=\"\/etc\/hostapd\/hostapd.conf\"/DAEMON_CONF=\"\/etc\/hostapd\/hostapd.conf\"/" /etc/default/hostapd
	cat /etc/default/hostapd | sed -i -e "s/#DAEMON_OPTS=\"-dd\"/DAEMON_OPTS=\"-dd\"/" /etc/default/hostapd

fi

#shorewall config
echo "#shorewall config"
cp /usr/share/doc/shorewall/examples/two-interfaces/* /etc/shorewall/
cd /etc/shorewall

cat /etc/shorewall/interfaces | sed -i -e "s/eth0/$NET_IFACE/" /etc/shorewall/interfaces
cat /etc/shorewall/interfaces | sed -i -e "s/eth1/$LOCAL_IFACE/" /etc/shorewall/interfaces
cat /etc/shorewall/masq | sed -i -e "s/eth0/$NET_IFACE/" /etc/shorewall/masq
cat /etc/shorewall/masq | sed -i -e "s/eth1/$LOCAL_IFACE/" /etc/shorewall/masq
cat /etc/shorewall/shorewall.conf | sed -i -e "s/STARTUP_ENABLED=No/STARTUP_ENABLED=Yes/" /etc/shorewall/shorewall.conf
cat /etc/shorewall/policy | sed -i -e "s/loc		\$FW		REJECT		info/loc		\$FW		ACCEPT/" /etc/shorewall/policy
cat /etc/shorewall/policy | sed -i -e "s/\$FW		net		REJECT		info/\$FW		net		ACCEPT/" /etc/shorewall/policy
#FREEBOX TV MULTICAST
cat /etc/shorewall/rules | sed -i -e "s/#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE/#/" /etc/shorewall/rules

echo "
#PC M
DNAT net:212.27.38.253 loc:192.168.1.30 udp 7567
DNAT net:212.27.38.253 loc:192.168.1.30 udp 7566
#PC O
DNAT net:212.27.38.253 loc:192.168.1.29 udp 7565
DNAT net:212.27.38.253 loc:192.168.1.29 udp 7564

#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE" >> /etc/shorewall/rules


cat /etc/default/shorewall | sed -i -e "s/startup=0/startup=1/" /etc/default/shorewall

#Mysql config
echo "#Mysql config" 
cat /etc/mysql/my.cnf | sed -i -e "s/log_bin/#log_bin/" /etc/mysql/my.cnf
cat /etc/mysql/my.cnf | sed -i -e "s/expire_logs_days/#expire_logs_days/" /etc/mysql/my.cnf
cat /etc/mysql/my.cnf | sed -i -e "s/max_binlog_size/#max_binlog_size/" /etc/mysql/my.cnf
echo "wait_timeout                    = 10000000" >> /etc/mysql/my.cnf

#Syslog-ng Config
#echo "#Syslog-ng config"
#cat /etc/default/syslog-ng | sed -i -e "s/#CONSOLE_LOG_LEVEL=1/CONSOLE_LOG_LEVEL=1/"
#cd /etc/skel
#wget http://www.sourcefiles.org/Monitoring/Logs/phpsyslogng-2.8.tar.gz
#tar -zxvf phpsyslogng-2.8.tar.gz
#sudo mv phpsyslogng-2.8 /var/www/
#sudo mv /var/www/phpsyslogng-2.8  /var/www/phpsyslogng
#cd /var/www/phpsyslogng
#cat scripts/dbsetup.sql | sed -i -e "s/PW_HERE/SYSLOG_PW/" scripts/dbsetup.sql
#sudo mysql -u root < scripts/dbsetup.sql

#echo "destination d_mysql {
#pipe(\"/var/log/mysql.pipe\"
#template(\"INSERT INTO logs
#(host, facility, priority, level, tag, datetime, program, msg)
#VALUES ( '\$HOST', '\$FACILITY', '\$PRIORITY', '\$LEVEL', '\$TAG', '\$YEAR-\$MONTH-\$DAY \$HOUR:\$MIN:\$SEC',
#'\$PROGRAM', '\$MSG' );\\n\") template-escape(yes));
#};" >> /etc/syslog-ng/syslog-ng.conf

#echo "log {
#source(s_all);
#destination(d_mysql);
#};" >> /etc/syslog-ng/syslog-ng.conf

#cat $SCRIPT_DIR/syslog2mysql | sed -i -e "s/PASS_HERE/SYSLOG_PW/" $SCRIPT_DIR/syslog2mysql
#sudo cp $SCRIPT_DIR/syslog2mysql /etc/init.d/syslog2mysql

#sudo chmod +x /etc/init.d/syslog2mysql
#sudo update-rc.d syslog2mysql defaults

#cat /var/www/phpsyslogng/config/config.php | sed -i -e "s/PW_HERE/SYSLOG_PW/" /var/www/phpsyslogng/config/config.php

#cat /var/www/phpsyslogng/config/config.php | sed -i -e "define('LOGROTATERETENTION', 90);/define('LOGROTATERETENTION', 3);/" /var/www/phpsyslogng/config/config.php

#echo "*/360 * * * * root php /var/www/phpsyslogng/scripts/logrotate.php" >> /etc/cron.d/sysloglogrotate
#sudo chmod +x /etc/cron.d/sysloglogrotate


echo "set password for root@localhost=password('$ROOT_MYSQL_PWD');" > snort_root.sql
mysql -u root < snort_root.sql mysql || failure "Creating Snort Database Part 1 failed, error=$?"

rm snort_root.sql


#Ntop config
echo "#Ntop config"
cat /etc/default/ntop | sed -i -e "s/#GETOPT=\"\"/GETOPT=\"-i $NET_IFACE\"/" /etc/default/ntop
sudo ntop --set-admin-password=admin

#TOR PRIVOXY config
echo "#TOR PRIVOXY config"
cat /etc/privoxy/config | sed -i -e 's/debug   1    # show each GET\/POST\/CONNECT request/#debug   1    # show each GET\/POST\/CONNECT request/' /etc/privoxy/config
cat /etc/privoxy/config | sed -i -e "s/#        forward-socks4a             \/     127.0.0.1:9050 ./        forward-socks4a             \/     localhost:9050 ./" /etc/privoxy/config



#Network config


#rc.local config
echo "#rc.local config"

if [ $AP_WIFI = "yes" ] ; then
	echo "
	#!/bin/sh
	#ifconfig $NET_IFACE up
	#iwconfig $NET_IFACE essid hikmoun key 6C6576616C mode Managed
	#dhclient $NET_IFACE
	echo \"
	iface wlan0 inet dhcp
	pre-up ifconfig wlan0 down

	wireless-key 6C6576616C
	wireless-essid hikmoun

	pre-up sleep 20
	pre-up ifconfig wlan0 up\" >> /etc/network/interfaces
	/etc/init.d/networking restart
	/etc/init.d/hostapd stop
	/etc/init.d/shorewall stop
	/etc/init.d/dhcp3-server stop
	modprobe ath_pci
	ifconfig $OLD_LOCAL_IFACE down
	wlanconfig $OLD_LOCAL_IFACE destroy
	wlanconfig $LOCAL_IFACE create wlandev $ATH_LOCAL_IFACE wlanmode ap
	iwpriv $LOCAL_IFACE mode 3
	ifconfig $LOCAL_IFACE down
	ifconfig $LOCAL_IFACE up
	iwconfig $LOCAL_IFACE essid test1
	iwconfig $LOCAL_IFACE essid WANADOO-2KYW
	ifconfig $LOCAL_IFACE 192.168.1.254  
	/etc/init.d/shorewall start
	/etc/init.d/hostapd start
	/etc/init.d/dhcp3-server start
	/etc/init.d/snort start
	/etc/init.d/ntop restart
	sudo /etc/init.d/dhcp3-server restart
	
	exit 0" > /etc/rc.local
else
	echo "
	#!/bin/sh
	dhclient $NET_IFACE
	ifconfig $LOCAL_IFACE 192.168.1.254 
	/etc/init.d/shorewall stop
	/etc/init.d/dhcp3-server stop
	/etc/init.d/shorewall start
	/etc/init.d/dhcp3-server start
	/etc/init.d/snort start
	/etc/init.d/ntop restart
	sudo /etc/init.d/dhcp3-server restart
	
	exit 0" > /etc/rc.local
fi

sudo chmod +x /etc/rc.local


## Updating initramfs script
echo "## Updating initramfs script"
# Removing Enter Prompt at shutdown
echo "# Removing Enter Prompt at shutdown"
rm /etc/rc0.d/*casper || failure "Removing casper init for stop failed, error=$?"
rm /etc/rc6.d/*casper || failure "Removing casper init for restart failed, error=$?"
#Setting username and Host data
echo "#Setting username and Host data"
cat /usr/share/initramfs-tools/scripts/casper | sed -i -e 's/USERNAME=casper/USERNAME='$USERNAME'/' /usr/share/initramfs-tools/scripts/casper
cat /usr/share/initramfs-tools/scripts/casper | sed -i -e "s/USERFULLNAME=\"Live session user\"/USERFULLNAME=\"$USERFULLNAME\"/" /usr/share/initramfs-tools/scripts/casper
cat /usr/share/initramfs-tools/scripts/casper | sed -i -e 's/HOST=live/HOST='$HOST'/' /usr/share/initramfs-tools/scripts/casper
cat /usr/share/initramfs-tools/scripts/casper | sed -i -e 's/BUILD_SYSTEM=Custom/BUILD_SYSTEM='$HOST'/' /usr/share/initramfs-tools/scripts/casper


cat /etc/casper.conf | sed -i -e "s/export USERNAME=\"ubuntu\"/export USERNAME=\"$USERNAME\"/" /etc/casper.conf
cat /etc/casper.conf | sed -i -e "s/export USERFULLNAME=\"Live session user\"/export USERFULLNAME=\"$USERFULLNAME\"/" /etc/casper.conf
cat /etc/casper.conf | sed -i -e "s/export HOST=\"ubuntu\"/export  HOST=\"$HOST\"/" /etc/casper.conf
cat /etc/casper.conf | sed -i -e "s/export BUILD_SYSTEM=\"Ubuntu\"/export BUILD_SYSTEM=\"$HOST\"/" /etc/casper.conf

#Setting Password
echo "#Setting Password"
PASSWORD=`mkpasswd -s $PASSWORD_CRYPT`
while echo $PASSWORD | grep '/' 
do
PASSWORD=`mkpasswd -s $PASSWORD_CRYPT`
done


cat /usr/share/initramfs-tools/scripts/casper-bottom/10adduser | sed -i -e 's/U6aMy0wojraho/'$PASSWORD'/' /usr/share/initramfs-tools/scripts/casper-bottom/10adduser


cat /usr/share/initramfs-tools/scripts/casper-bottom/10adduser | sed -i -e "s/\&\& sed -i -e '\/\^%admin\/s\/ALL$\/NOPASSWD: ALL\/' \/root\/etc\/sudoers//" /usr/share/initramfs-tools/scripts/casper-bottom/10adduser

cat /usr/share/initramfs-tools/scripts/casper-bottom/10adduser | sed -i -e "s/ALL=(ALL) NOPASSWD: ALL/ALL=(ALL) ALL/" /usr/share/initramfs-tools/scripts/casper-bottom/10adduser


#Disable Autologin
echo "#Disable Autologin" 
cat /usr/share/initramfs-tools/scripts/casper-bottom/15autologin | sed -i -e 's/AutomaticLoginEnable=true/AutomaticLoginEnable=false/' /usr/share/initramfs-tools/scripts/casper-bottom/15autologin

cat /usr/share/initramfs-tools/scripts/casper-bottom/15autologin | sed -i -e 's/TimedLoginEnable=true/TimedLoginEnable=false/' /usr/share/initramfs-tools/scripts/casper-bottom/15autologin

cat /usr/share/initramfs-tools/scripts/casper-bottom/15autologin | sed -i -e 's/AutoLoginEnable=true/AutoLoginEnable=false/' /usr/share/initramfs-tools/scripts/casper-bottom/15autologin

cat /usr/share/initramfs-tools/scripts/casper-bottom/15autologin | sed -i -e 's/AutoReLogin=true/AutoReLogin=false/' /usr/share/initramfs-tools/scripts/casper-bottom/15autologin

cat /usr/share/initramfs-tools/scripts/casper-bottom/15autologin | sed -i -e 's/if [ ! -f \/root\/etc\/kde3\/kpersonalizerrc ]; then/#if [ ! -f \/root\/etc\/kde3\/kpersonalizerrc ]; then/' /usr/share/initramfs-tools/scripts/casper-bottom/15autologin

cat /usr/share/initramfs-tools/scripts/casper-bottom/15autologin | sed -i -e 's/cat > \/root\/etc\/kde3\/kpersonalizerrc <<EOF/#cat > \/root\/etc\/kde3\/kpersonalizerrc <<EOF/' /usr/share/initramfs-tools/scripts/casper-bottom/15autologin

cat /usr/share/initramfs-tools/scripts/casper-bottom/15autologin | sed -i -e 's/\[General\]/#\[General\]/' /usr/share/initramfs-tools/scripts/casper-bottom/15autologin

cat /usr/share/initramfs-tools/scripts/casper-bottom/15autologin | sed -i -e 's/FirstLogin=false/#FirstLogin=false/' /usr/share/initramfs-tools/scripts/casper-bottom/15autologin

cat /usr/share/initramfs-tools/scripts/casper-bottom/15autologin | sed -i -e 's/^EOF/#EOF/' /usr/share/initramfs-tools/scripts/casper-bottom/15autologin

cd /etc/skel

#RT61 driver
#echo "Install RT61 Driver"
#cd /etc/skel
#mkdir rt61
#cd rt61
#wget http://rt2x00.serialmonkey.com/rt61-cvs-daily.tar.gz
#tar -zxvf rt61-cvs-daily.tar.gz
#cd rt61-cvs*/Module
#make
#ifconfig wlan0 down
#modprobe -r rt61pci
#echo 'blacklist rt61pci' | sudo tee -a /etc/modprobe.d/blacklist
#sudo make install
#sudo cp ./*.bin /lib/firmware
#echo 'rt61' | sudo tee -a /etc/modules

#cd /etc/skel/
#rm -r rt61*

#Madwifi driver
#echo "Install Madwifi Driver"

#(
#wget http://belnet.dl.sourceforge.net/sourceforge/madwifi/madwifi-0.9.3.3.tar.gz
#tar xzvf madwifi-0.9.3.3.tar.gz

#svn checkout http://svn.madwifi.org/madwifi/trunk/ madwifi-ng
#wget http://patches.aircrack-ng.org/madwifi-ng-r2277.patch
#cd madwifi-0.9.3.3
#patch -Np1 -i ../madwifi-ng-r2277.patch
#ifconfig ath0 down &
#ifconfig wifi0 down & 
#ifconfig ath1 down &
#ifconfig wifi1 down &
#ifconfig ath2 down &
#ifconfig wifi2 down &
#./scripts/madwifi-unload
#make
#make install
#depmod -ae
#modprobe ath_pci
#cd ..
#rm -r madwifi-0.9.3.3
#rm madwifi-ng-r2277.patch

#)|| failure "Installing Aircrack-ng Patch for Madwifi-ng Part 1 failed, error=$?"

# COPYING SCRIPT
#echo "# COPYING SCRIPT"
#sudo cp $SCRIPT_DIR/uck.tar.gz /etc/skel/


apt-get clean
apt-get autoclean

#REmove grahic user interface
rm /etc/init.d/gdm
#Remove apparmor
rm /etc/init.d/apparmor
#Remove cupsys
rm /etc/init.d/cupsys
#Remove readahead
rm /etc/init.d/readahead


# MAKING INITRD.GZ
echo "Making initrd.gz"

mkinitramfs -o /initrd.gz `uname -r` || failure "Initrd.gz creation failed, error=$?"



echo "ALL DONE, very nice :)"












if [ "$RUN_MANUAL_CUSTOMIZATIONS" = "yes" ] ; then
	WINDOW_MANAGER=`which kwin`
	if [ "$WINDOW_MANAGER" = "" ]; then
		WINDOW_MANAGER=`which metacity`
	fi
	if [ "$WINDOW_MANAGER" = "" ]; then
		WINDOW_MANAGER=`which xfwm4`
	fi

	CONSOLE_APP=`which konsole`
	CONSOLE_APP_OPTIONS=(--caption "UCK customization console" -e /bin/bash)
	if [ "$CONSOLE_APP" = "" ]; then
		CONSOLE_APP=`which gnome-terminal`
		CONSOLE_APP_OPTIONS=(-t "UCK customization console" -e /bin/bash)
	fi
	if [ "$CONSOLE_APP" = "" ]; then
		CONSOLE_APP=`which xfce4-terminal`
		CONSOLE_APP_OPTIONS=(-t "UCK customization console" -e /bin/bash)
	fi

	PACKAGE_APP=`which adept`
	PACKAGE_APP_OPTIONS=(--caption "UCK Package Manager")
	if [ "$PACKAGE_APP" = "" ]; then
		PACKAGE_APP=`which adept_manager`
	fi
	if [ "$PACKAGE_APP" = "" ]; then
		PACKAGE_APP=`which synaptic`
		PACKAGE_APP_OPTIONS=(-t "UCK Package manager")
	fi

	while true ; do
		CHOICE_PACKAGE_MANAGER="Run package manager"
		CHOICE_CONSOLE="Run console application"
		CHOICE_EXIT="Continue building"
		CHOICE=`dialog_menu "Please choose customization action" "$CHOICE_PACKAGE_MANAGER" "$CHOICE_CONSOLE" "$CHOICE_EXIT"`
		RESULT=$?

		if [ $RESULT -ne 0 ] ; then
			failure "Script cancelled by user"
		fi
		#workaround for KDE bug (https://bugs.kde.org/show_bug.cgi?id=139025)
		CHOICE=`echo "$CHOICE" | grep -v -i kwrited | tail -n1`

		echo "CHOICE='$CHOICE'"

		if [ "$CHOICE" = "$CHOICE_EXIT" ] ; then
			break
		elif [ "$CHOICE" = "$CHOICE_PACKAGE_MANAGER" ] ; then
			echo "Starting package application..."
			$PACKAGE_APP "${PACKAGE_APP_OPTIONS[@]}"
			RESULT=$?

			if [ $RESULT -ne 0 ]; then
				dialog_msgbox "Failure" "Running package application $PACKAGE_APP failed, error=$RESULT"
			fi
		elif [ "$CHOICE" = "$CHOICE_CONSOLE" ] ; then
			echo "Starting console application..."
			$CONSOLE_APP "${CONSOLE_APP_OPTIONS[@]}"
			RESULT=$?

			if [ $RESULT -ne 0 ]; then
				dialog_msgbox "Failure" "Running console application $CONSOLE_APP failed, error=$RESULT"
			fi
		fi
	done
fi

sudo rm -r /tmp/*

echo "Customizing Finished"

#718 Le 14/03/2008, à 22:35

frafa

Re : Customisation/Création de Live CD/USB

==> Oliv7
lo,

Exemple pour ajouter un script perso
remplace "/chemin/lien_vers_mon_script"
par le bon chemin...

function MA_FONCTION()
{
MESSAGE="Ma fonction, execution en cours..."
TIMEOUT&

chroot /mnt/tmp_modif_liveusb << "EOF"
export LANG="$(cat /opt/lang.txt)"
export HOME=/home/liveusb
export LC_ALL=C
export DISPLAY=localhost:5.0
xterm -e "/chemin/lien_vers_mon_script"
EOF

rm "/tmp/Log_liveusb.txt"
sleep 2
}
DISPLAY=localhost:5.0 MA_FONCTION

insere dans mon script ta fonction
juste avant cette ligne:

DISPLAY=localhost:5.0 zenity --info --width 500  --text "Si vous avez oublié une manip, c'est le moment
après cette fenêtre ménage et reconstruction de la clé usb"

Dernière modification par frafa (Le 14/03/2008, à 22:46)

Hors ligne

#719 Le 14/03/2008, à 22:42

frafa

Re : Customisation/Création de Live CD/USB

==> Oliv7
fait gaffe moi je crée un user temporaire liveusb
donc le bon dossier user est:
/home/liveusb/ #en chroot bien sur

ne pas faire mod user dans /etc/skel
le script copie et supprime cet user dans /etc/skel
juste avant de reconstruire le squashfs
voir la fonction:

#Supprimer utilisateur liveusb
function REMOVE_USER()
{
MESSAGE="Copie de /home/liveusb/ dans /etc/skel/ et suppression de user liveusb"
TIMEOUT&
chroot /mnt/tmp_modif_liveusb << "EOF"
export LANG="$(cat /opt/lang.txt)"
export HOME=/root
export LC_ALL=C

#faire mirroir dans /etc/skel/.
rsync -uravH --delete /home/liveusb/. /etc/skel/.
sleep 2
#virer admin et liveusb de /etc/sudoers
#cat /etc/sudoers | sed '/%admin/d' | tee /etc/sudoers
echo -e "root ALL=(ALL) ALL" | tee /etc/sudoers
#supprimer user
userdel -r liveusb
EOF
rm "/tmp/Log_liveusb.txt"
sleep 2
}
REMOVE_USER

Dernière modification par frafa (Le 14/03/2008, à 22:43)

Hors ligne

#720 Le 14/03/2008, à 22:53

Oliv7

Re : Customisation/Création de Live CD/USB

Ok merci,

J'attend la sortie de la prochaine LTS en version stable et je posterai mes fonctions et mes scripts


@+
Oliv

#721 Le 15/03/2008, à 08:19

frafa

Re : Customisation/Création de Live CD/USB

All-Users
Bonjour,

sur les conseils de Oliv7
j'ai ajouté une fonction special geek qui vous permet d'executer dans le chroot un script perso.
pour activer cette fonction ajouter le dit script nommé (add-on-liveusb.sh) a la racine de votre user:
"$HOME/add-on-liveusb.sh"
si quand vous lancez mode custom le script est présent une boite de dialogue vous proposera
de l'executer et ce juste avant la fermeture de xnest.
PS: dans votre script appelez /home/liveusb et pas /etc/skel pour les modif user.
détail de la fonction:

function ADDON_EXTERNE()
{
if [ -x "$HOME/add-on-liveusb.sh" ]; then
ADDON=$(zenity \
--title="Live CD/USB" \
--text="Choisir l'option désirée dans la liste ci-dessous" \
--window-icon="/usr/share/pixmaps/ubuntu.svg" \
--width=460 \
--height=180 \
--list \
--radiolist \
--editable \
--print-column="2" \
--hide-column="2" \
--column="*" \
--column="*" \
--column="Choix" \
FALSE A "Executer le script $HOME/add-on-liveusb.sh" \
TRUE B "Pas la peine" \
)
if [ "$(echo "${ADDON}" | awk  '{print $1}')" == "A" ]; then
#copier script dans chroot /mnt/tmp_modif_liveusb/tmp
cp -f "$HOME/add-on-liveusb.sh" "/mnt/tmp_modif_liveusb/tmp/add-on-liveusb.sh"
chroot /mnt/tmp_modif_liveusb << "EOF"
export LANG="$(cat /opt/lang.txt)"
export HOME=/home/liveusb
export LC_ALL=C
apt-get install -y --force-yes xterm
echo -e '\E[37;44m'"\033[1m force install xterm \033[0m"
EOF
chroot /mnt/tmp_modif_liveusb << "EOF"
export LANG="$(cat /opt/lang.txt)"
export HOME=/home/liveusb
export LC_ALL=C
export DISPLAY=localhost:5.0
#evitez les script qui appelent uname car il releve pas la kernel version du chroot
#remplacez `uname -r` par $(cat /opt/kernel-version.txt) sous gusty retournera ==> 2.6.22-14-generic
xterm  -title 'add-on-liveusb Customisation' -e "/tmp/add-on-liveusb.sh"
EOF
fi
fi
}
DISPLAY=localhost:5.0 ADDON_EXTERNE

j'ai aussi rajouté une variable au debut du script pour
choisir le nom de l'utilisateur modifiez:
USER_LIVEUSB="Ubuntu"

pour les curieux regardez aussi ces fonctions, non activées par defaut à ce jour...
#MOD_CASPER
#MOD_DIRECTORIES
#MOD_MIME

Dernière modification par frafa (Le 15/03/2008, à 08:21)

Hors ligne

#722 Le 15/03/2008, à 08:38

frafa

Re : Customisation/Création de Live CD/USB

All-Users
Re,

je vais rajouter une fonction:
Délocaliser /mnt (utile notament pour executer script depuis un livecd)
puis apres je calme le developpement,
de maniere a ne faire plus que du debogage pour sortir une version stable.
et de la doc utilisateur.

Dernière modification par frafa (Le 15/03/2008, à 08:40)

Hors ligne

#723 Le 15/03/2008, à 10:38

Oliv7

Re : Customisation/Création de Live CD/USB

Cf mon script précédent
Sur Gutsy pour modifier le nom de l'host le code est:

cat /usr/share/initramfs-tools/scripts/casper | sed -i -e 's/HOST=live/HOST='$HOST'/' /usr/share/initramfs-tools/scripts/casper
cat /usr/share/initramfs-tools/scripts/casper | sed -i -e 's/BUILD_SYSTEM=Custom/BUILD_SYSTEM='$HOST'/' /usr/share/initramfs-tools/scripts/casper
cat /etc/casper.conf | sed -i -e "s/export HOST=\"ubuntu\"/export  HOST=\"$HOST\"/" /etc/casper.conf
cat /etc/casper.conf | sed -i -e "s/export BUILD_SYSTEM=\"Ubuntu\"/export BUILD_SYSTEM=\"$HOST\"/" /etc/casper.conf

Pour modifier l'autologin, (avoir une invite de login) le code est:

#Disable Autologin
echo "#Disable Autologin" 
cat /usr/share/initramfs-tools/scripts/casper-bottom/15autologin | sed -i -e 's/AutomaticLoginEnable=true/AutomaticLoginEnable=false/' /usr/share/initramfs-tools/scripts/casper-bottom/15autologin

cat /usr/share/initramfs-tools/scripts/casper-bottom/15autologin | sed -i -e 's/TimedLoginEnable=true/TimedLoginEnable=false/' /usr/share/initramfs-tools/scripts/casper-bottom/15autologin

cat /usr/share/initramfs-tools/scripts/casper-bottom/15autologin | sed -i -e 's/AutoLoginEnable=true/AutoLoginEnable=false/' /usr/share/initramfs-tools/scripts/casper-bottom/15autologin

cat /usr/share/initramfs-tools/scripts/casper-bottom/15autologin | sed -i -e 's/AutoReLogin=true/AutoReLogin=false/' /usr/share/initramfs-tools/scripts/casper-bottom/15autologin

cat /usr/share/initramfs-tools/scripts/casper-bottom/15autologin | sed -i -e 's/if [ ! -f \/root\/etc\/kde3\/kpersonalizerrc ]; then/#if [ ! -f \/root\/etc\/kde3\/kpersonalizerrc ]; then/' /usr/share/initramfs-tools/scripts/casper-bottom/15autologin

cat /usr/share/initramfs-tools/scripts/casper-bottom/15autologin | sed -i -e 's/cat > \/root\/etc\/kde3\/kpersonalizerrc <<EOF/#cat > \/root\/etc\/kde3\/kpersonalizerrc <<EOF/' /usr/share/initramfs-tools/scripts/casper-bottom/15autologin

cat /usr/share/initramfs-tools/scripts/casper-bottom/15autologin | sed -i -e 's/\[General\]/#\[General\]/' /usr/share/initramfs-tools/scripts/casper-bottom/15autologin

cat /usr/share/initramfs-tools/scripts/casper-bottom/15autologin | sed -i -e 's/FirstLogin=false/#FirstLogin=false/' /usr/share/initramfs-tools/scripts/casper-bottom/15autologin

cat /usr/share/initramfs-tools/scripts/casper-bottom/15autologin | sed -i -e 's/^EOF/#EOF/' /usr/share/initramfs-tools/scripts/casper-bottom/15autologin

Pour le script addons, j'ai également une autre problématique qui est de pouvoir ajouter des éléments sur le volume casper-rw de la clef. Pour des raisons de sauvegarde je préfère copier mon environnement xampp sur casper -rw plutôt que de l'intégrer dans le squashfs.
Ce qui serait intéressant serait d'avoir un autre bout de script pour faire les modifications hors chroot (copier/coller capser-rw, modif syslinux.cfg, ...)

Voilà, je suis exigeant, mais si tu n'as pas le temps de faire ces modifs, je les ferais sans doute moi-même dans quelques temps,

@+
Oliv

#724 Le 15/03/2008, à 18:54

frafa

Re : Customisation/Création de Live CD/USB

==> Oliv7
lo,

concernant casper-rw
je peut ecentuellement rajouter une fonction simmilaire a  sauvegarde/restauration de /home
voir fonction:
SAVE_HOME()
RESTAURATION_HOME()
qui monte un fichier image et copie son contenu
mais je ne veut pas rajouter de redimension du disque, si rentre pas renvera un message erreur est full

pour tes 2 modif , ok je les adopte, je rajoute dans le week.
avec une boite de dialogue activer/desactiver pour autologin

Hors ligne

#725 Le 15/03/2008, à 19:18

Oliv7

Re : Customisation/Création de Live CD/USB

Les modifs ci dessus marchent sûr pour gutsy gnome xfce, pour kde j'ai pas testé (ni pour debian)

@+
Oliv