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__