sh-script/onekey-root.sh

143 lines
5.7 KiB
Bash
Raw Normal View History

2023-11-13 10:01:00 +00:00
#!/usr/bin/env bash
2023-11-13 10:00:01 +00:00
2023-11-13 10:01:00 +00:00
# 提示红色的错误信息
error_msg() {
echo -e "\033[0;31m[$(date +"%F %T")]:\033[0m $*" >&2
}
2023-11-13 10:00:01 +00:00
2023-11-13 10:01:00 +00:00
# 提示绿色的成功信息
success_msg() {
echo -e "\033[0;32m[$(date +"%F %T")]:\033[0m $*" >&1
}
2023-11-13 10:00:01 +00:00
2023-11-13 10:01:00 +00:00
customAddUser() {
read -p "请输入用户名:" user
#使用z 可以判断一个变量是否为空,如果为空,提示用户必须输入账户名,并退出脚本,退出码为 2
#没有输入用户名脚本退出后,使用$?查看的返回码为 2
if id -u ${user} >/dev/null 2>&1 ; then
echo "用户 ${user} 已存在."
return 127
fi
#使用 stty echo 关闭 shell 的回显功能
#使用 stty echo 打开 shell 的回显功能
# read -s -p "请输入密码:" pass
# pass=${pass:-123456}
useradd $user
echo -e "\n"
# echo $user:$pass | chpasswd
if [[ $? -eq 0 ]]; then
read -p "是否将用户添加入sudo组?(y/n)" confirmAdd
if [[ "$confirmAdd" == `echo -e "\n"` || $confirmAdd == "Y" || $confirmAdd == "y" ]]; then
usermod -aG sudo cirry
fi
else
return $?
fi
return $?
}
2023-11-13 10:00:01 +00:00
2023-11-13 10:01:00 +00:00
customDeleteUser() {
read -p "请输入需要删除的用户名:" username
deluser --remove-home $username
return $?
2023-11-13 10:00:01 +00:00
}
2023-11-13 10:01:00 +00:00
selectTips(){
Hostname=( '创建用户' '删除用户' '安装Caddy' '安装Docker' '卸载docker' '安装postgres数据库' '退出' )
PS3="Please input the number of host: "
select host in ${Hostname[@]}; do
case ${host} in
'创建用户')
customAddUser
if [[ $? -eq 0 ]]; then
echo "用户添加成功"
else
echo "用户添加失败"
fi
;;
'删除用户')
customDeleteUser
if [[ $? -eq 0 ]]; then
echo "用户删除成功"
else
echo "用户删除失败"
fi
;;
'安装Caddy')
echo -e "------安装Caddy------\n"
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy
echo -e "------Caddy安装完成------\n"
echo -e "------设置开机自启------\n"
sudo systemctl enable --now caddy
echo -e "------设置开机自启完成------\n"
echo -e "Caddy 配置路径为 /etc/caddy/Caddyfile \n"
;;
'安装Docker')
echo -e "------删除历史docker------\n"
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done
echo -e "------删除历史docker完成------\n"
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Add the repository to Apt sources:
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
echo -e "------添加docker组------\n"
sudo gpasswd -a $USER docker #将登陆用户加入到docker用户组中
newgrp docker #更新用户组
echo -e "------添加docker组完成------\n"
;;
'卸载docker')
sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
;;
'安装postgres数据库')
sudo apt-get update && sudo apt-get upgrade
echo -e "------默认安装当前最新稳定版本------\n"
apt-get install postgresql # 默认安装当前最新稳定版本
systemctl enable postgresql
echo -e "------查看版本号------\n"
psql --version
echo -e "------开启Postgres的远程访问------\n"
ver=$(psql --version | grep -oP '\d+' | head -1)
sed -i '/listen_addresses =/s/=.*/= '\''*'\''/' /etc/postgresql/$ver/main/postgresql.conf
sed -i '/port =/s/=.*/= '\''5432'\''/' /etc/postgresql/$ver/main/postgresql.conf
echo "host all all 0.0.0.0/0 md5" >> /etc/postgresql/$ver/main/pg_hba.conf
echo -e "------开启Postgres的远程访问完成------\n"
echo -e "------重启psql------\n"
systemctl restart postgresql
echo -e "------设置默认的PostgreSQL用户密码------\n"
echo -e "1. 打开终端并以root用户身份登录\n"
echo -e "2. 切换到PostgreSQL默认用户postgressu - postgres\n"
echo -e "3. 进入PostgreSQL命令行界面psql\n"
echo -e "4. 在命令行中输入以下ALTER USER postgres WITH PASSWORD new_password;\n"
echo -e " new_password是您想要设置的新密码\n"
echo -e "5. 输入\q退出PostgreSQL命令行界面\n"
echo -e "------设置默认的PostgreSQL用户密码------\n"
;;
'退出')
exit
;;
*)
echo "请选择正确的选项"
selectTips;
esac
done
2023-11-13 10:00:01 +00:00
}
2023-11-13 10:01:00 +00:00
selectTips