diff --git a/onekey-root.sh b/onekey-root.sh index bad1e75..04c2938 100644 --- a/onekey-root.sh +++ b/onekey-root.sh @@ -1,751 +1,143 @@ - - - - +# 提示绿色的成功信息 +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} + 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 $? +} + +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默认用户postgres:su - 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 \ No newline at end of file