更新 sudo-ssh.sh
This commit is contained in:
27
sudo-ssh.sh
27
sudo-ssh.sh
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user