Menu Utama

Login

Nama Samaran:

Kata Laluan:

Lupa Kata Laluan?
Daftar Sekarang!

Carian

Mambang News : Linuxfreeze
Dihantar oleh oshiri on 2010/1/16 9:41:58 (201 bacaan) News by the same author

Linuxfreeze, sebuah lagi script dari kami.
Tujuan bash script ini di bina ialah untuk system yang dikongsi oleh ramai pengguna seperti pada cybercafe ataupun kiosk.

Ia bertujuan untuk mengembalikan home folder user kepada keadaan asal setiap kali boot bagi mengelakkan folder tersebut dipenuhi dengan pelbagai file "sampah" atau virus yang tidak sepatutnya kekal di sana.

Script ini terbahagi kepada 2:
1. file /etc/init.d/linuxfreeze
Script utama
2. file /etc/default/linuxfreeze
File konfigurasi

File /etc/init.d/linuxfreeze :

#!/bin/sh
### BEGIN INIT INFO
# Provides: linuxfreeze
# Required-Start: $local_fs
# Required-Stop: $local_fs
# Should-Start: $remote_fs
# Should-Stop: $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: freeze home user and restore to original -created by mambang
# Description: start linuxfreeze witjh user specified in
# /etc/default/linuxfreeze
### END INIT INFO
set -e
PATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/usr/local/bin:."
export PATH
umask 022

PKGNAME=linuxfreeze
SCRIPTNAME=/etc/init.d/$PKGNAME
CONF=/etc/default/linuxfreeze

# Colors
BLACK='\e[0;30m'
BLUE='\e[0;34m'
GREEN='\e[0;32m'
CYAN='\e[0;36m'
RED='\e[0;31m'
PURPLE='\e[0;35m'
BROWN='\e[0;33m'
LIGHTGRAY='\e[0;37m'
DARKGRAY='\e[1;30m'
LIGHTBLUE='\e[1;34m'
LIGHTGREEN='\e[1;32m'
LIGHTCYAN='\e[1;36m'
LIGHTRED='\e[1;31m'
LIGHTPURPLE='\e[1;35m'
YELLOW='\e[1;33m'
WHITE='\e[1;37m'
NC='\e[0m'


[ -r /etc/default/$PKGNAME ] && . /etc/default/$PKGNAME

[ -f /etc/default/rcS ] && . /etc/default/rcS

. /lib/lsb/init-functions

if [ -z "$CONFIGURED" -o "$CONFIGURED" != "YA" ]
then
log_warning_msg -e "${YELLOW}$PKGNAME belum di configure, sila edit ${GREEN}/etc/default/$PKGNAME${YELLOW}.${NC}"
exit 0
fi

if [ -z "$RUN_AT_STARTUP" -o "$RUN_AT_STARTUP" != "YA" ]
then
log_warning_msg -e "${YELLOW}$PKGNAME disabled, sila edit ${GREEN}/etc/default/$PKGNAME${YELLOW} \ndan ubah kepada RUN_AT_STARTUP="YA" untuk enablekan semula.${NC}"
exit 0
fi

if [ -z "$LINUXFREEZE_USER" ]
then
log_warning_msg -e "${YELLOW}Tidak dapat mulakan $PKGNAME, \nLINUXFREEZE_USER tidak ditetapkan pada /etc/default/$PKGNAME.${NC}"
exit 0
fi

HOME="/home/$LINUXFREEZE_USER"

freeze() {
if [ -d /usr/share/freezer/skel ]
then
echo -n -e "${YELLOW}Sila tunggu, restoring system ... \n${NC}"
rsync -Har --ignore-existing /usr/share/freezer/skel/ $HOME/ 2>/dev/null
chown -R $LINUXFREEZE_USER:$LINUXFREEZE_USER $HOME 2>/dev/null
chmod -R 775 $HOME 2>/dev/null
echo "selesai."
else
echo -e "${RED}Backup Home tidak ujud.\nTidak akan mulakan linuxfreeze. \n${YELLOW}Sila bina backup menggunakan arahan $SCRIPTNAME freezer.${NC}"
exit 1

fi
}

unfreeze() {
if [ -d /usr/share/freezer/skel ]
then
echo -n -e "${YELLOW}Sila tunggu, restoring system ...${NC}"
rm -rf $HOME 2>/dev/null
rsync -Har --ignore-existing /usr/share/freezer/skel/ $HOME/ 2>/dev/null
chown -R $LINUXFREEZE_USER:$LINUXFREEZE_USER $HOME
chmod -R 775 $HOME 2>/dev/null
echo "selesai."
echo -n -e "${GREEN}Disabling linuxfreeze ...${NC}"
sed -i 's/YA/TIDAK/g' /etc/default/linuxfreeze
update-rc.d -f linuxfreeze remove 2>/dev/null
echo "selesai."
echo -n -e "${YELLOW}Membuang backup file ...${NC}"
rm -rf /usr/share/freezer 2>/dev/null
echo "selesai."
else
echo -e "${RED}Backup Home tidak ujud.\nTidak dapat unfreeze.${NC}"
exit 1

fi
}

freezer() {
if [ -d /usr/share/freezer/skel ]
then
echo -ne "${RED}Backup system telah ujud!${NC} \nAnda pasti untuk delete dan membina backup baru (ya/tidak)?${NC} "
read reply
if [ "$reply" != "ya" ]
then
exit 1
else
rm -rf /etc/usr/share/freezer/skel
echo -ne "${YELLOW}Sila tunggu, membina backup ...${NC}"
cp -Rp $HOME /usr/share/freezer/skel 2>/dev/null
chown -R root:root /usr/share/freezer/skel
echo "Selesai."
echo -n -e "${GREEN}Enabling linuxfreeze ...${NC}"
update-rc.d -f linuxfreeze defaults 10 2>/dev/null
echo "selesai."
fi
else
echo -n -e "${YELLOW}Sila tunggu, membina backup ...${NC}"
mkdir -p /usr/share/freezer 2>/dev/null
cp -Rp $HOME /usr/share/freezer/skel 2>/dev/null
chown -R root:root /usr/share/freezer/skel
echo "selesai."
echo -n -e "${GREEN}Enabling linuxfreeze ...${NC}"
update-rc.d -f linuxfreeze defaults 10 2>/dev/null
echo "selesai."
fi
}

do_stop() {
echo -ne "${YELLOW}Membuang $HOME ...${NC}"
rm -rf $HOME 2>/dev/null
echo "selesai."
}

case "$1" in
start)
freeze
;;
freezer)
freezer
;;
unfreeze)
unfreeze
;;
stop)
do_stop
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|freezer|unfreeze}" >&2
exit 3
;;
esac

:


2. File /etc/default/linuxreeze

# Konfigurasi untuk /etc/init.d/linuxfreeze
# sila ubah ke YA selepas anda tetapkan nama user
CONFIGURED="TIDAK"
# init.d script hanya akan run jika variable mempunyai nilai.
# sila masukkan nama user/home yang ingin di freezekan
LINUXFREEZE_USER=""
# sila ubah kepada YA jika ingin mulakan init.d
RUN_AT_STARTUP="TIDAK"

Untuk kali pertama run, anda perlu ubah file /etc/default/linuxfreeze.
Sila masukkan nama user pada LINUXFREEZE_USER untuk home yang bakal kita freeze. Ubah yang lain kepada YA.

Kemudian run /etc/init.d/linuxfreeze freezer. System akan mempunyai folder home user tadi seperti sebelum kita run freezer setiap kali boot.

Untuk tidak menggunakan linuxfreeze, sila run : /etc/init.d/linuxfreeze unfreeze.

Linuxfreeze dalam bentuk deb boleh didapati disini:
linuxfreez

Printer Friendly Page Send this Story to a Friend
Komen ini dimiliki oleh pengirim. Kami tidak bertanggungjawab dengan isi kandungannya.
Pengirim Thread