From 2b06d640997355d5768e18d0c34c4dcd480c09d4 Mon Sep 17 00:00:00 2001 From: "luk.lu" Date: Fri, 18 Nov 2022 11:08:02 +0800 Subject: [PATCH] u --- debian-add-user.sh | 33 +++++++++------------------ debian-config.sh | 13 ++++++----- expect-ssh2server.sh | 8 +++---- home-config.sh | 53 ++++++++++++++++++++++++-------------------- rename-host.sh | 6 ++--- 5 files changed, 53 insertions(+), 60 deletions(-) diff --git a/debian-add-user.sh b/debian-add-user.sh index 694ffb0..2de06d7 100755 --- a/debian-add-user.sh +++ b/debian-add-user.sh @@ -1,18 +1,12 @@ echo "Usage: setup.sh [USER]" echo "Example: setup.sh alice" -if [ v$1 != v ] -then - NewUser=$1 -else - echo "=== Enter new <> (leave blank for default 'adot'):" - read -p ">>> " NewUser - if [ ! $NewUser ] - then - echo Use default new user: adot - NewUser=adot - fi -fi +NewUser=$1 +while [ ! "$NewUser" ] +do +echo "=== To add a new user of name:" +read -p ">>> " NewUser +done echo "=== Add a new user $NewUser" useradd $NewUser @@ -28,7 +22,7 @@ sed -i "s|/home/$NewUser:/bin/sh$|/home/$NewUser:/bin/bash|g" /etc/passwd # Debian 9 default to empty sed -i "s|/home/$NewUser:$|/home/$NewUser:/bin/bash|g" /etc/passwd -echo "=== Allow the new user $NewUser to sudo without password? for yes, <> for no" +echo "=== Allow the new user $NewUser to sudo without password? for yes, for no" read -p ">>> " AllowSudo if [ "$AllowSudo" == "y" ] then @@ -41,16 +35,11 @@ else fi echo -if [ $NewUser = 'adot' ] +echo "=== Configure $NewUser home with standard scripts? for yes, for no" +read -p ">>> " ConfigHome +if [ "$ConfigHome" == 'y' ] then source /faronear/fon/sysconfig/home-config.sh /faronear/fon/sysconfig/nixhome $NewUser else - echo "=== Configure $NewUser home with standard scripts? for yes, <> for no" - read -p ">>> " ConfigHome - if [ $ConfigHome ] && [ $ConfigHome = 'y' ] - then - source /faronear/fon/sysconfig/home-config.sh /faronear/fon/sysconfig/nixhome $NewUser - else - echo "--- Nothing configured." - fi + echo "--- Nothing configured." fi diff --git a/debian-config.sh b/debian-config.sh index 13ef8c4..6965bc9 100755 --- a/debian-config.sh +++ b/debian-config.sh @@ -2,6 +2,7 @@ echo "Usage: this.sh [NewUser]" echo "Example: this.sh alice" +echo " curl https://git.faronear.org/fon/sysconfig/raw/branch/main/debian-config.sh | bash" if [ v$1 != v ] then @@ -62,14 +63,14 @@ sed -i "s|^PermitRootLogin yes|#PermitRootLogin yes|g" /etc/ssh/sshd_config service sshd restart echo -echo "=== Set <> or leave blank for no change" +echo "=== Set or for no change" read -p ">>> " NewHostname if [ $NewHostname ] then + sed -i "s|\b`hostname`\b|$NewHostname|g" /etc/hosts # echo "127.0.0.1 $NewHostname" >> /etc/hosts hostnamectl set-hostname $NewHostname - echo "127.0.0.1 $NewHostname" >> /etc/hosts else - echo 'Nothing changed >>>' + echo 'Nothing changed.' fi echo @@ -95,7 +96,7 @@ echo "=== Add a new user $NewUser" source /faronear/fon/sysconfig/debian-add-user.sh $NewUser echo -echo "=== Enable xfce autologin [/etc/lightdm/lightdm.conf] as user <$NewUser> for autologin or <> for no change):" +echo "=== Enable xfce autologin [/etc/lightdm/lightdm.conf] as user <$NewUser> for autologin or for no change):" read -p ">>> " XfceAutologinUsername if [ $XfceAutologinUsername = $NewUser ] then @@ -103,8 +104,8 @@ then sed -i "s/^.*autologin-user-timeout=.*$/autologin-user-timeout=0/g" /etc/lightdm/lightdm.conf echo "Successfully configured autologin as $NewUser" else - echo 'Nothing changed >>>' + echo 'Nothing changed.' fi echo -echo "=== Debian System Setup Completed >>>" +echo "=== Debian System Setup Completed." diff --git a/expect-ssh2server.sh b/expect-ssh2server.sh index 69ff000..536725d 100755 --- a/expect-ssh2server.sh +++ b/expect-ssh2server.sh @@ -39,22 +39,22 @@ then read -p "Enter root password (YU) >>" PWD_ROOT expect ~/faronear/fon/sysconfig/expect-ssh.sh $targetUrl adot $PWD_ADOT $PWD_ADOT else - while [ ! $HOST ] + while [ "$HOST" ] do read -p "host = " HOST done - while [ ! $USER ] + while [ "$USER" ] do read -p "user = " USER done - while [ ! $PWD_USER ] + while [ "$PWD_USER" ] do read -p "user password = " PWD_USER done - while [ ! $PWD_SU ] + while [ "$PWD_SU" ] do read -p "root password = " ROOT_SU done diff --git a/home-config.sh b/home-config.sh index e6fbf9b..f4e996f 100755 --- a/home-config.sh +++ b/home-config.sh @@ -31,7 +31,7 @@ else fi fi - +# $2 应当为用户名。为空则默认是 root if [ "$2" ] then HomePath=/home/$2 @@ -39,12 +39,12 @@ else HomePath=~ fi -if [ -d $HomePath ] +if [ -d "$HomePath" ] then pushd $HomePath homescriptlist=".emacs .emacs.lisp .bashrc .bash_profile .gitignore" echo - echo "=== Copy or link scripts? for link, <> for copy:" + echo "=== Copy or link scripts? for link, for copy:" read -p ">>> " CopyOrLinkScripts for homescript in $homescriptlist do @@ -59,31 +59,36 @@ then fi done echo - echo "=== Append or link or omit [.ssh/authorized_keys] to config ssh server? for append, for link, <> for omit:" - read -p ">>> " CopyOrLinkOrOmitAuthorizedKeys - mkdir -p $HomePath/.ssh - chmod 700 $HomePath/.ssh - if [ "$2" ] # 注意,由 root 为新用户创建的配置文件的 owner 是 root,而不是新用户,导致新用户无法读取该文件而密钥登录失败,因此要重设 owner。 - then + if [ $2 ] # 如果 $2 不存在,则默认为是 root 用户,不需要设置 .ssh + then + + mkdir -p $HomePath/.ssh + chmod 700 $HomePath/.ssh + # 注意,由 root 为新用户创建的配置文件的 owner 是 root,而不是新用户,导致新用户无法读取该文件而密钥登录失败,因此要重设 owner。 chown $2:$2 $HomePath - fi - if [ -e '$HomePath/.ssh/authorized_keys' ] - then - mv $HomePath/.ssh/authorized_keys $HomePath/.ssh/authorized_keys.backup-$(date +%Y%m%d%H%M%S) + if [ -e '$HomePath/.ssh/authorized_keys' ] + then + mv $HomePath/.ssh/authorized_keys $HomePath/.ssh/authorized_keys.backup-$(date +%Y%m%d%H%M%S) + fi + + echo "=== Append or link or omit [.ssh/authorized_keys] to config ssh server? for append, for link, <> for omit:" + read -p ">>> " CopyOrLinkOrOmitAuthorizedKeys + + if [ "$CopyOrLinkOrOmitAuthorizedKeys" = 'l' ] + then + echo "--- Linking $SourcePath/authorized_keys to $HomePath/.ssh/authorized_keys ..." + ln -s $SourcePath/.ssh/authorized_keys $HomePath/.ssh/authorized_keys + elif [ "$CopyOrLinkOrOmitAuthorizedKeys" = 'a' ] + then + echo "--- Copying $SourcePath/authorized_keys to $HomePath/.ssh/authorized_keys ..." + cat $SourcePath/.ssh/authorized_keys >> $HomePath/.ssh/authorized_keys + chmod 600 $HomePath/.ssh/authorized_keys + fi + echo + fi - if [ "$CopyOrLinkOrOmitAuthorizedKeys" = 'l' ] - then - echo "--- Linking $SourcePath/authorized_keys to $HomePath/.ssh/authorized_keys ..." - ln -s $SourcePath/.ssh/authorized_keys $HomePath/.ssh/authorized_keys - elif [ "$CopyOrLinkOrOmitAuthorizedKeys" = 'a' ] - then - echo "--- Copying $SourcePath/authorized_keys to $HomePath/.ssh/authorized_keys ..." - cat $SourcePath/.ssh/authorized_keys >> $HomePath/.ssh/authorized_keys - chmod 600 $HomePath/.ssh/authorized_keys - fi - echo popd else echo "!!! Not existing $HomePath, please try again." diff --git a/rename-host.sh b/rename-host.sh index a89ef34..b9626a9 100644 --- a/rename-host.sh +++ b/rename-host.sh @@ -8,11 +8,9 @@ fi if [ $NewHostname ] then - OldHostname=`hostname` hostnamectl set-hostname $NewHostname - sed -i "s|\b$OldHostname\b|$NewHostname|g" /etc/hosts - # echo "127.0.0.1 $NewHostname" >> /etc/hosts + sed -i "s|\b$`hostname`\b|$NewHostname|g" /etc/hosts # echo "127.0.0.1 $NewHostname" >> /etc/hosts else echo 'Nothing changed >>>' fi -echo \ No newline at end of file +echo