設置服務器公鑰登陸sh腳本

#!/bin/bash 
# desc: 此腳本用來創建用戶,並設置成公鑰登陸.
# author:[email protected]
# date: 2015-06-18

# 設置環境變量
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin 
export PATH

#輸入需要創建的用戶名
read -p "Input the user name:" username

#確認是否上傳相應的文件
read -p "Do you upload user public key file(e.g. xumin.pub) to home directory before excute this script? (y or n):" fileflag

if [ "$fileflag" != "Y" ] && [ "$fileflag" != "y" ]; then 
    echo "please upload user public key file(e.g. xumin.pub) to home directory.\n" 
    exit 2 
fi

echo "start setting....... \n"

#檢查公鑰文件是否已經上傳
filepath=~/$username.pub

if [ -f $filepath ];then
    echo "$filepath 文件存在!"
else
    echo "$filepath 文件不存在或者您輸入的路徑有誤"
    exit 3
fi


#新增用戶組
groupadd $username
if [ $? == 0 ];then
    echo "group add success\n"
else
    exit 4
fi

#新增用戶並自動建立文件夾和初始配置,設置個密碼
useradd -g $username -d /home/$username $username
if [ $? == 0 ];then
    echo "user add success\n"
else
    exit 5
fi

#設置初始密碼
echo "123" | passwd --stdin $username

#新建ssh文件目錄
mkdir /home/$username/.ssh

#把公鑰改名放到對應的地方
mv ~/$username.pub /home/$username/.ssh/authorized_keys

#修改文件夾權限及文件權限
chown -R $username.$username /home/$username/.ssh
chmod 700 /home/$username/.ssh
chmod 644 /home/$username/.ssh/authorized_keys

#改sudoer配置,加入sudoer
chmod 777 /etc/sudoers

echo "$username    ALL=(ALL)       ALL">>/etc/sudoers

#權限改回去
chmod 440 /etc/sudoers


echo "end setting....... \n"
#刪除用戶並刪除其主目錄
#userdel -r $username


修改公鑰

#!/bin/bash 
# desc: 此腳本用來修改用戶登陸公鑰
# author:[email protected]
# date: 2015-06-18

# 設置環境變量
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin 
export PATH

#輸入需要創建的用戶名
read -p "Input the user name:" username

#確認是否上傳相應的文件
read -p "Do you upload user public key file(e.g. xumin.pub) to home directory before excute this script? (y or n):" fileflag

if [ "$fileflag" != "Y" ] && [ "$fileflag" != "y" ]; then 
    echo "please upload user public key file(e.g. xumin.pub) to home directory.\n" 
    exit 2 
fi

echo "start changing....... \n"

#檢查公鑰文件是否已經上傳
filepath=~/$username.pub

if [ -f $filepath ];then
    echo "$filepath 文件存在!"
else
    echo "$filepath 文件不存在或者您輸入的路徑有誤"
    exit 3
fi


rm -rf /home/$username/.ssh/authorized_keys

#把公鑰改名放到對應的地方
mv ~/$username.pub /home/$username/.ssh/authorized_keys

#修改文件夾權限及文件權限
chown -R $username.$username /home/$username/.ssh
chmod 700 /home/$username/.ssh
chmod 644 /home/$username/.ssh/authorized_keys



echo "end changing....... \n"
#刪除用戶並刪除其主目錄
#userdel -r $username


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章