u
This commit is contained in:
		
							parent
							
								
									c7be7f6e2f
								
							
						
					
					
						commit
						2b06d64099
					
				| @ -1,18 +1,12 @@ | |||||||
| echo "Usage: setup.sh [USER]" | echo "Usage: setup.sh [USER]" | ||||||
| echo "Example: setup.sh alice" | echo "Example: setup.sh alice" | ||||||
| 
 | 
 | ||||||
| if [ v$1 != v ] | NewUser=$1 | ||||||
| then | while [ ! "$NewUser" ] | ||||||
|   NewUser=$1 | do | ||||||
| else | echo "=== To add a new user of name:" | ||||||
|   echo "=== Enter new <<UserName>> (leave blank for default 'adot'):" | read -p ">>> " NewUser | ||||||
|   read -p ">>> " NewUser | done | ||||||
|   if [ ! $NewUser ] |  | ||||||
|   then |  | ||||||
|     echo Use default new user: adot |  | ||||||
|     NewUser=adot |  | ||||||
|   fi |  | ||||||
| fi |  | ||||||
| 
 | 
 | ||||||
| echo "=== Add a new user $NewUser" | echo "=== Add a new user $NewUser" | ||||||
| useradd $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 | # Debian 9 default to empty | ||||||
| sed -i "s|/home/$NewUser:$|/home/$NewUser:/bin/bash|g" /etc/passwd | 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 | read -p ">>> " AllowSudo | ||||||
| if [ "$AllowSudo" == "y" ] | if [ "$AllowSudo" == "y" ] | ||||||
| then | then | ||||||
| @ -41,16 +35,11 @@ else | |||||||
| fi | fi | ||||||
| echo | 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 | then | ||||||
|   source /faronear/fon/sysconfig/home-config.sh /faronear/fon/sysconfig/nixhome $NewUser |   source /faronear/fon/sysconfig/home-config.sh /faronear/fon/sysconfig/nixhome $NewUser | ||||||
| else | else | ||||||
|   echo "=== Configure $NewUser home with standard scripts? <y> for yes, <<anything else>> for no" |   echo "--- Nothing configured." | ||||||
|   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 |  | ||||||
| fi | fi | ||||||
|  | |||||||
| @ -2,6 +2,7 @@ | |||||||
| 
 | 
 | ||||||
| echo "Usage: this.sh [NewUser]" | echo "Usage: this.sh [NewUser]" | ||||||
| echo "Example: this.sh alice" | echo "Example: this.sh alice" | ||||||
|  | echo " curl https://git.faronear.org/fon/sysconfig/raw/branch/main/debian-config.sh | bash" | ||||||
| 
 | 
 | ||||||
| if [ v$1 != v ] | if [ v$1 != v ] | ||||||
| then | then | ||||||
| @ -62,14 +63,14 @@ sed -i "s|^PermitRootLogin yes|#PermitRootLogin yes|g" /etc/ssh/sshd_config | |||||||
| service sshd restart | service sshd restart | ||||||
| echo | echo | ||||||
| 
 | 
 | ||||||
| echo "=== Set <<hostname>> or leave blank for no change" | echo "=== Set <hostname> or <leave blank> for no change" | ||||||
| read -p ">>> " NewHostname | read -p ">>> " NewHostname | ||||||
| if [ $NewHostname ] | if [ $NewHostname ] | ||||||
| then | then | ||||||
|  |   sed -i "s|\b`hostname`\b|$NewHostname|g" /etc/hosts # echo "127.0.0.1 $NewHostname" >> /etc/hosts | ||||||
|   hostnamectl set-hostname $NewHostname |   hostnamectl set-hostname $NewHostname | ||||||
|   echo "127.0.0.1 $NewHostname" >> /etc/hosts |  | ||||||
| else | else | ||||||
|   echo 'Nothing changed >>>' |   echo 'Nothing changed.' | ||||||
| fi | fi | ||||||
| echo | echo | ||||||
| 
 | 
 | ||||||
| @ -95,7 +96,7 @@ echo "=== Add a new user $NewUser" | |||||||
| source /faronear/fon/sysconfig/debian-add-user.sh $NewUser | source /faronear/fon/sysconfig/debian-add-user.sh $NewUser | ||||||
| echo | 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 | read -p ">>> " XfceAutologinUsername | ||||||
| if [ $XfceAutologinUsername = $NewUser ] | if [ $XfceAutologinUsername = $NewUser ] | ||||||
| then | then | ||||||
| @ -103,8 +104,8 @@ then | |||||||
|   sed -i "s/^.*autologin-user-timeout=.*$/autologin-user-timeout=0/g" /etc/lightdm/lightdm.conf |   sed -i "s/^.*autologin-user-timeout=.*$/autologin-user-timeout=0/g" /etc/lightdm/lightdm.conf | ||||||
|   echo "Successfully configured autologin as $NewUser" |   echo "Successfully configured autologin as $NewUser" | ||||||
| else | else | ||||||
|   echo 'Nothing changed >>>' |   echo 'Nothing changed.' | ||||||
| fi | fi | ||||||
| echo | echo | ||||||
| 
 | 
 | ||||||
| echo "=== Debian System Setup Completed >>>" | echo "=== Debian System Setup Completed." | ||||||
|  | |||||||
| @ -39,22 +39,22 @@ then | |||||||
|   read -p "Enter root password (YU) >>" PWD_ROOT |   read -p "Enter root password (YU) >>" PWD_ROOT | ||||||
|   expect ~/faronear/fon/sysconfig/expect-ssh.sh $targetUrl adot $PWD_ADOT $PWD_ADOT |   expect ~/faronear/fon/sysconfig/expect-ssh.sh $targetUrl adot $PWD_ADOT $PWD_ADOT | ||||||
| else | else | ||||||
|   while [ ! $HOST ] |   while [ "$HOST" ] | ||||||
|   do |   do | ||||||
|   read -p "host = " HOST |   read -p "host = " HOST | ||||||
|   done |   done | ||||||
| 
 | 
 | ||||||
|   while [ ! $USER ] |   while [ "$USER" ] | ||||||
|   do |   do | ||||||
|     read -p "user = " USER |     read -p "user = " USER | ||||||
|   done |   done | ||||||
|    |    | ||||||
|   while [ ! $PWD_USER ] |   while [ "$PWD_USER" ] | ||||||
|   do |   do | ||||||
|     read -p "user password = " PWD_USER |     read -p "user password = " PWD_USER | ||||||
|   done |   done | ||||||
| 
 | 
 | ||||||
|   while [ ! $PWD_SU ] |   while [ "$PWD_SU" ] | ||||||
|   do |   do | ||||||
|     read -p "root password = " ROOT_SU |     read -p "root password = " ROOT_SU | ||||||
|   done |   done | ||||||
|  | |||||||
| @ -31,7 +31,7 @@ else | |||||||
|   fi |   fi | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| 
 | # $2 应当为用户名。为空则默认是 root | ||||||
| if [ "$2" ] | if [ "$2" ] | ||||||
| then | then | ||||||
|   HomePath=/home/$2 |   HomePath=/home/$2 | ||||||
| @ -39,12 +39,12 @@ else | |||||||
|   HomePath=~ |   HomePath=~ | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| if [ -d $HomePath ] | if [ -d "$HomePath" ] | ||||||
| then | then | ||||||
|   pushd $HomePath |   pushd $HomePath | ||||||
|   homescriptlist=".emacs .emacs.lisp .bashrc .bash_profile .gitignore" |   homescriptlist=".emacs .emacs.lisp .bashrc .bash_profile .gitignore" | ||||||
|   echo |   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 |   read -p ">>> " CopyOrLinkScripts | ||||||
|   for homescript in $homescriptlist |   for homescript in $homescriptlist | ||||||
|   do |   do | ||||||
| @ -59,31 +59,36 @@ then | |||||||
|     fi |     fi | ||||||
|   done |   done | ||||||
|   echo |   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 |   if [ $2 ] # 如果 $2 不存在,则默认为是 root 用户,不需要设置 .ssh | ||||||
|   chmod 700 $HomePath/.ssh |   then  | ||||||
|   if [ "$2" ] # 注意,由 root 为新用户创建的配置文件的 owner 是 root,而不是新用户,导致新用户无法读取该文件而密钥登录失败,因此要重设 owner。 | 
 | ||||||
|   then |     mkdir -p $HomePath/.ssh | ||||||
|  |     chmod 700 $HomePath/.ssh | ||||||
|  |     # 注意,由 root 为新用户创建的配置文件的 owner 是 root,而不是新用户,导致新用户无法读取该文件而密钥登录失败,因此要重设 owner。 | ||||||
|     chown $2:$2 $HomePath |     chown $2:$2 $HomePath | ||||||
|   fi |     if [ -e '$HomePath/.ssh/authorized_keys' ] | ||||||
|   if [ -e '$HomePath/.ssh/authorized_keys' ] |     then | ||||||
|   then |       mv $HomePath/.ssh/authorized_keys $HomePath/.ssh/authorized_keys.backup-$(date +%Y%m%d%H%M%S) | ||||||
|     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 |   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 |   popd | ||||||
| else | else | ||||||
|   echo "!!! Not existing $HomePath, please try again." |   echo "!!! Not existing $HomePath, please try again." | ||||||
|  | |||||||
| @ -8,11 +8,9 @@ fi | |||||||
| 
 | 
 | ||||||
| if [ $NewHostname ] | if [ $NewHostname ] | ||||||
| then | then | ||||||
|   OldHostname=`hostname` |  | ||||||
|   hostnamectl set-hostname $NewHostname |   hostnamectl set-hostname $NewHostname | ||||||
|   sed -i "s|\b$OldHostname\b|$NewHostname|g" /etc/hosts |   sed -i "s|\b$`hostname`\b|$NewHostname|g" /etc/hosts # echo "127.0.0.1 $NewHostname" >> /etc/hosts | ||||||
|   # echo "127.0.0.1 $NewHostname" >> /etc/hosts |  | ||||||
| else | else | ||||||
|   echo 'Nothing changed >>>' |   echo 'Nothing changed >>>' | ||||||
| fi | fi | ||||||
| echo | echo | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user