u
This commit is contained in:
		
							parent
							
								
									c7be7f6e2f
								
							
						
					
					
						commit
						2b06d64099
					
				| @ -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 <<UserName>> (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? <y> for yes, <<anything else>> for no" | ||||
| echo "=== Allow the new user $NewUser to sudo without password? <y> for yes, <anything else> 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? <y> for yes, <anything else> 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? <y> for yes, <<anything else>> 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 | ||||
|  | ||||
| @ -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 <<hostname>> or leave blank for no change" | ||||
| echo "=== Set <hostname> or <leave blank> 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 <<anything else>> for no change):" | ||||
| echo "=== Enable xfce autologin [/etc/lightdm/lightdm.conf] as user <$NewUser> for autologin or <anything else> 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." | ||||
|  | ||||
| @ -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 | ||||
|  | ||||
| @ -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? <l> for link, <<anything else>> for copy:" | ||||
|   echo "=== Copy or link scripts? <l> for link, <anything else> 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? <a> for append, <l> for link, <<anything else>> 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? <a> for append, <l> for link, <<anything else>> 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." | ||||
|  | ||||
| @ -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 | ||||
| echo | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user