更新 sudo-ssh.sh
This commit is contained in:
27
sudo-ssh.sh
27
sudo-ssh.sh
@@ -1,7 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 一键准备目标 Linux 设备的 SSH 和部署 sudo 权限。
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
TARGET_USER=${TARGET_USER:-leador}
|
||||
@@ -156,14 +154,24 @@ ensure_sudo_access() {
|
||||
return
|
||||
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 权限"
|
||||
return
|
||||
fi
|
||||
|
||||
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 权限已补齐"
|
||||
return
|
||||
fi
|
||||
@@ -217,9 +225,18 @@ check_connectivity() {
|
||||
}
|
||||
|
||||
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"
|
||||
need_cmd apt-get
|
||||
run_root apt-get update
|
||||
run_root apt-get install -y openssh-server
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user