From 88700c0fc909f6051241232a0bd7277781619d53 Mon Sep 17 00:00:00 2001 From: guowenxue <guowenxue@gmail.com> Date: Thu, 30 Dec 2021 15:13:46 +0800 Subject: [PATCH] update buildroot to fix debian sudo bug --- bsp/rootfs/build.sh | 22 ++++++++++++++++------ 1 files changed, 16 insertions(+), 6 deletions(-) diff --git a/bsp/rootfs/build.sh b/bsp/rootfs/build.sh index 0c25a68..19e85aa 100755 --- a/bsp/rootfs/build.sh +++ b/bsp/rootfs/build.sh @@ -14,6 +14,7 @@ TAR_PATH=${PRJ_PATH}/../tarball # rootfs configuration +DEBIAN_URL=http://ftp.cn.debian.org/debian/ ARCH=armhf DEF_USER=lingyun DEF_PASSWD=12345 @@ -87,8 +88,8 @@ export LANG=C printf "\n\n -- debootstrap fetch start --\n\n" - echo "debootstrap --arch=${ARCH} --foreign ${DISTRO} ${ROOTFS_DIR} http://ftp.cn.debian.org/debian/" - debootstrap --arch=${ARCH} --foreign ${DISTRO} ${ROOTFS_DIR} http://ftp.cn.debian.org/debian/ + echo "debootstrap --arch=${ARCH} --foreign ${DISTRO} ${ROOTFS_DIR} ${DEBIAN_URL}" + debootstrap --arch=${ARCH} --foreign ${DISTRO} ${ROOTFS_DIR} ${DEBIAN_URL} chroot ${ROOTFS_DIR} debootstrap/debootstrap --second-stage printf "\n\n -- debootstrap config start --\n\n" @@ -98,6 +99,10 @@ # Clear the MD5 value to install extra apps sed -i -e "s|.*md5apt.*|\t\"md5apt\":\"MD5_Auto_Generate_Here\"|g" $APPS_CONF + + cd ${ROOTFS_DIR} + tar -cjf ../${ROOTFS_DIR}.orig.tar.bz2 * + cd - } @@ -134,6 +139,7 @@ chroot ${ROOTFS_DIR} apt update chroot ${ROOTFS_DIR} apt install -y ${extra_apps} + chroot ${ROOTFS_DIR} apt autoremove umount ${ROOTFS_DIR}/{sys,proc,dev/pts,dev} @@ -144,15 +150,14 @@ # modify root password chroot ${ROOTFS_DIR} sh -c "echo root:${DEF_PASSWD} | chpasswd" - # add extra user account + # add default user account set +e grep "$DEF_USER" ${ROOTFS_DIR}/etc/passwd > /dev/null 2>&1 if [ $? != 0 ] ; then printf "\n\n -- setup default user account --\n\n" chroot ${ROOTFS_DIR} sh -c "useradd -m -s /bin/bash ${DEF_USER}" chroot ${ROOTFS_DIR} sh -c "echo ${DEF_USER}:${DEF_PASSWD} | chpasswd" - chroot ${ROOTFS_DIR} sh -c "usermod -G video,audio,sudo avnet" - echo "${DEF_USER} ALL=(ALL:ALL) NOPASSWD:ALL" >> ${ROOTFS_DIR}/etc/sudoers + chroot ${ROOTFS_DIR} sh -c "usermod -aG video,audio,sudo ${DEF_USER}" fi set -e } @@ -236,7 +241,7 @@ # update profile sed -i "s|PS1='# '|PS1='\\\u@\\\h:\\\w# '|g" ${ROOTFS_DIR}/etc/profile sed -i "s|PS1='$ '|PS1='\\\u@\\\h:\\\w$ '|g" ${ROOTFS_DIR}/etc/profile - + sed -i 's|PATH=.*|PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"|g' ${ROOTFS_DIR}/etc/profile # add ls alias for display with color grep "^alias ls=" ${ROOTFS_DIR}/etc/profile > /dev/null 2>&1 @@ -244,6 +249,11 @@ echo "alias ls='ls --color=auto'" >> ${ROOTFS_DIR}/etc/profile fi + # update sudo without passwd for yocto and debian + if [ $SYSTEM != buildroot ] ; then + sed -i "s|^%sudo.*|%sudo ALL=(ALL:ALL) NOPASSWD:ALL|g" ${ROOTFS_DIR}/etc/sudoers + fi + # permit root ssh login sed -i "s|^#PermitRootLogin.*|PermitRootLogin yes|g" ${ROOTFS_DIR}/etc/ssh/sshd_config sed -i "s|^#PasswordAuthentication.*|PasswordAuthentication yes|g" ${ROOTFS_DIR}/etc/ssh/sshd_config -- Gitblit v1.9.1