sh-script/onekey-root.sh
2023-12-12 15:52:42 +08:00

143 lines
5.7 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env bash
# 提示红色的错误信息
error_msg() {
echo -e "\033[0;31m[$(date +"%F %T")]:\033[0m $*" >&2
}
# 提示绿色的成功信息
success_msg() {
echo -e "\033[0;32m[$(date +"%F %T")]:\033[0m $*" >&1
}
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}
adduser $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 $user
fi
else
return $?
fi
return $?
}
customDeleteUser() {
read -p "请输入需要删除的用户名:" username
deluser --remove-home $username
return $?
}
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
}
selectTips