更新 sudo-ssh.sh

This commit is contained in:
2026-06-12 09:47:17 +08:00
parent afe734e93a
commit 72f220b3f8

View File

@@ -1,7 +1,5 @@
#!/bin/bash #!/bin/bash
# 一键准备目标 Linux 设备的 SSH 和部署 sudo 权限。
set -euo pipefail set -euo pipefail
TARGET_USER=${TARGET_USER:-leador} TARGET_USER=${TARGET_USER:-leador}
@@ -156,14 +154,24 @@ ensure_sudo_access() {
return return
fi fi
if [[ "$(id -un)" == "$TARGET_USER" ]] && command -v sudo >/dev/null 2>&1 && sudo -v; then if [[ "$(id -un)" == "$TARGET_USER" ]] && command -v sudo >/dev/null 2>&1 && sudo -n true 2>/dev/null; then
log_info "当前用户已有免密 sudo 权限"
return
fi
if [[ "$(id -un)" == "$TARGET_USER" ]] && [[ -t 0 ]] && command -v sudo >/dev/null 2>&1 && sudo -v; then
log_info "当前用户已有 sudo 权限" log_info "当前用户已有 sudo 权限"
return return
fi fi
bootstrap_sudo_with_su "$TARGET_USER" bootstrap_sudo_with_su "$TARGET_USER"
if [[ "$(id -un)" == "$TARGET_USER" ]] && command -v sudo >/dev/null 2>&1 && sudo -v; then if [[ "$(id -un)" == "$TARGET_USER" ]] && command -v sudo >/dev/null 2>&1 && sudo -n true 2>/dev/null; then
log_info "sudo 权限已补齐"
return
fi
if [[ "$(id -un)" == "$TARGET_USER" ]] && [[ -t 0 ]] && command -v sudo >/dev/null 2>&1 && sudo -v; then
log_info "sudo 权限已补齐" log_info "sudo 权限已补齐"
return return
fi fi
@@ -217,9 +225,18 @@ check_connectivity() {
} }
install_ssh_server() { install_ssh_server() {
need_cmd apt-get if command -v sshd >/dev/null 2>&1; then
log_info "openssh-server 已存在,跳过安装"
return
fi
if command -v dpkg >/dev/null 2>&1 && dpkg -s openssh-server >/dev/null 2>&1; then
log_info "openssh-server 已安装,跳过安装"
return
fi
log_info "安装 openssh-server" log_info "安装 openssh-server"
need_cmd apt-get
run_root apt-get update run_root apt-get update
run_root apt-get install -y openssh-server run_root apt-get install -y openssh-server
} }