diff --git a/RootStock-NG.sh b/RootStock-NG.sh
index 185a3d618cc5ad76ff5348aac870e4d85524d25a..3cd6b5645c60a252af9863f1a2a310a75e643c8d 100755
--- a/RootStock-NG.sh
+++ b/RootStock-NG.sh
@@ -90,6 +90,10 @@ run_project () {
 
 		image_hostname="${image_hostname}"
 
+		user_name="${user_name}"
+		full_name="${full_name}"
+		password="${password}"
+
 		chroot_ENABLE_DEB_SRC="${chroot_ENABLE_DEB_SRC}"
 
 		chroot_KERNEL_HTTP_DIR="${chroot_KERNEL_HTTP_DIR}"
@@ -131,7 +135,12 @@ if [ -f ${DIR}/release ] ; then
 	chroot_ENABLE_DEB_SRC="enable"
 fi
 
+full_name="Demo User"
+password="temppwd"
+
 distro="debian"
+user_name="${distro}"
+
 dpkg_arch="armel"
 
 release="squeeze"
@@ -144,6 +153,8 @@ dpkg_arch="armhf"
 run_project
 
 distro="ubuntu"
+user_name="${distro}"
+
 dpkg_arch="armhf"
 release="quantal"
 run_project
diff --git a/scripts/chroot.sh b/scripts/chroot.sh
index 50ca1e57e05b0d6c85d2a0dc0faadd444d93538f..ab452db7b66b5662c079eaa29b382c0488aec518 100755
--- a/scripts/chroot.sh
+++ b/scripts/chroot.sh
@@ -61,6 +61,21 @@ check_defines () {
 			;;
 		esac
 	fi
+
+	if [ ! "${user_name}" ] ; then
+		user_name="${distro}"
+		echo "user_name: undefined using: [${user_name}]"
+	fi
+
+	if [ ! "${password}" ] ; then
+		password="temppwd"
+		echo "password: undefined using: [${password}]"
+	fi
+
+	if [ ! "${full_name}" ] ; then
+		full_name="Demo User"
+		echo "full_name: undefined using: [${full_name}]"
+	fi
 }
 
 report_size () {
@@ -176,7 +191,7 @@ cat > ${DIR}/chroot_script.sh <<-__EOF__
 	install_pkg_updates () {
 		apt-get update
 
-		packages="lsb-release initramfs-tools wget"
+		packages="initramfs-tools lsb-release sudo wget"
 		for pkg in \${packages} ; do check_n_install ; done
 
 		distro="\$(lsb_release -si)"
@@ -252,6 +267,32 @@ cat > ${DIR}/chroot_script.sh <<-__EOF__
 		rm -f /tmp/\${deb_file} || true
 		rm -f /boot/System.map-\${kernel_version} || true
 		rm -f /boot/config-\${kernel_version} || true
+		rm -rf /usr/src/linux-headers* || true
+	}
+
+	add_user () {
+		groupadd admin || true
+		echo "%admin  ALL=(ALL) ALL" >>/etc/sudoers
+		default_groups="admin,adm,dialout,cdrom,floppy,audio,dip,video"
+
+		pass_crypt=\$(perl -e 'print crypt(\$ARGV[0], "rcn-ee-salt")' ${password})
+
+		useradd -G "\${default_groups}" -s /bin/bash -m -p \${pass_crypt} -c "${full_name}" ${user_name}
+
+		case "\${distro}" in
+		Debian)
+			usermod -aG sudo debian || true
+			usermod -aG dialout debian || true
+
+			passwd <<-EOF
+			root
+			root
+			EOF
+			;;
+		Ubuntu)
+			passwd -l root || true
+			;;
+		esac
 	}
 
 	cleanup () {
@@ -268,13 +309,6 @@ cat > ${DIR}/chroot_script.sh <<-__EOF__
 			dpkg-divert --local --rename --remove /sbin/initctl
 		fi
 
-		if [ "x\${distro}" = "xDebian" ] ; then
-			passwd <<-EOF
-			root
-			root
-			EOF
-		fi
-
 		#left over from init/upstart scripts running in chroot...
 		if [ -d /var/run/ ] ; then
 			rm -rf /var/run/* || true
@@ -294,6 +328,7 @@ cat > ${DIR}/chroot_script.sh <<-__EOF__
 		for kernel_url in ${chroot_KERNEL_HTTP_DIR} ; do dl_kernel ; done
 	fi
 
+	add_user
 	cleanup
 	rm -f /chroot_script.sh || true
 __EOF__