This commit is contained in:
luk.lu
2022-11-18 11:08:02 +08:00
parent c7be7f6e2f
commit 2b06d64099
5 changed files with 53 additions and 60 deletions

View File

@@ -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."