diff --git a/core/utils/ssh/ssh.go b/core/utils/ssh/ssh.go index a2a8792eb..172ee004a 100644 --- a/core/utils/ssh/ssh.go +++ b/core/utils/ssh/ssh.go @@ -75,6 +75,14 @@ func (c *SSHClient) SudoHandleCmd() string { return "" } +func (c *SSHClient) IsRoot(user string) bool { + if user == "root" { + return true + } + _, err := c.Run("sudo -n true") + return err == nil +} + func (c *SSHClient) Runf(shell string, args ...interface{}) (string, error) { session, err := c.Client.NewSession() if err != nil { diff --git a/frontend/src/lang/modules/en.ts b/frontend/src/lang/modules/en.ts index b17023c1e..172479a0f 100644 --- a/frontend/src/lang/modules/en.ts +++ b/frontend/src/lang/modules/en.ts @@ -3382,6 +3382,8 @@ const message = { nodeCheck: 'Availability check', checkSSH: 'Check node SSH connection', + checkUserPermission: 'Check node user permissions', + isNotRoot: 'Detected that password-less sudo is not supported on this node and current user is non-root', checkLicense: 'Check node license status', checkService: 'Check existing service information on node', checkPort: 'Check node port reachability', diff --git a/frontend/src/lang/modules/ja.ts b/frontend/src/lang/modules/ja.ts index 42e0481dc..e64d58f47 100644 --- a/frontend/src/lang/modules/ja.ts +++ b/frontend/src/lang/modules/ja.ts @@ -3251,6 +3251,9 @@ const message = { nodeCheck: '可用性チェック', checkSSH: 'ノードSSH接続を確認', + checkUserPermission: 'ノードユーザー権限を確認', + isNotRoot: + 'このノードではパスワードなしsudoがサポートされておらず、現在のユーザーがrootではないことが検出されました', checkLicense: 'ノードライセンス状態を確認', checkService: 'ノードの既存サービス情報を確認', checkPort: 'ノードポート到達性を確認', diff --git a/frontend/src/lang/modules/ko.ts b/frontend/src/lang/modules/ko.ts index ddcc939cd..83c3c5d4c 100644 --- a/frontend/src/lang/modules/ko.ts +++ b/frontend/src/lang/modules/ko.ts @@ -3193,6 +3193,9 @@ const message = { nodeCheck: '가용성 확인', checkSSH: '노드 SSH 연결 확인', + checkUserPermission: '노드 사용자 권한 확인', + isNotRoot: + '이 노드에서 비밀번호 없이 sudo를 사용할 수 없으며 현재 사용자가 root가 아닌 것으로 감지되었습니다', checkLicense: '노드 라이선스 상태 확인', checkService: '노드의 기존 서비스 정보 확인', checkPort: '노드 포트 접근 가능 여부 확인', diff --git a/frontend/src/lang/modules/ms.ts b/frontend/src/lang/modules/ms.ts index 8f4586795..2369f1281 100644 --- a/frontend/src/lang/modules/ms.ts +++ b/frontend/src/lang/modules/ms.ts @@ -3322,6 +3322,8 @@ const message = { nodeCheck: 'Semakan ketersediaan', checkSSH: 'Periksa sambungan SSH nod', + checkUserPermission: 'Semak kebenaran pengguna nod', + isNotRoot: 'Dikesan sudo tanpa kata laluan tidak disokong pada nod ini dan pengguna semasa bukan root', checkLicense: 'Periksa status lesen nod', checkService: 'Periksa maklumat perkhidmatan sedia ada pada nod', checkPort: 'Periksa kebolehcapaian port nod', diff --git a/frontend/src/lang/modules/pt-br.ts b/frontend/src/lang/modules/pt-br.ts index 565150b2d..35b4d3a53 100644 --- a/frontend/src/lang/modules/pt-br.ts +++ b/frontend/src/lang/modules/pt-br.ts @@ -3331,6 +3331,8 @@ const message = { nodeCheck: 'Verificação de disponibilidade', checkSSH: 'Verificar conexão SSH do nó', + checkUserPermission: 'Verificar permissões de usuário do nó', + isNotRoot: 'Detectado que sudo sem senha não é suportado neste nó e o usuário atual não é root', checkLicense: 'Verificar status da licença do nó', checkService: 'Verificar informações de serviço existentes no nó', checkPort: 'Verificar acessibilidade da porta do nó', diff --git a/frontend/src/lang/modules/ru.ts b/frontend/src/lang/modules/ru.ts index 7c9cb7e1e..2e26a2844 100644 --- a/frontend/src/lang/modules/ru.ts +++ b/frontend/src/lang/modules/ru.ts @@ -3316,6 +3316,9 @@ const message = { nodeCheck: 'Проверка доступности', checkSSH: 'Проверить SSH-подключение узла', + checkUserPermission: 'Проверка прав пользователя узла', + isNotRoot: + 'Обнаружено, что sudo без пароля не поддерживается на этом узле и текущий пользователь не является root', checkLicense: 'Проверить статус лицензии узла', checkService: 'Проверить информацию о существующих службах на узле', checkPort: 'Проверить доступность порта узла', diff --git a/frontend/src/lang/modules/zh-Hant.ts b/frontend/src/lang/modules/zh-Hant.ts index ff05a2629..f576e103b 100644 --- a/frontend/src/lang/modules/zh-Hant.ts +++ b/frontend/src/lang/modules/zh-Hant.ts @@ -3150,6 +3150,8 @@ const message = { nodeCheck: '可用性檢查', checkSSH: '檢查節點 SSH 連接', + checkUserPermission: '檢查節點用戶權限', + isNotRoot: '檢測到該節點不支持免密 sudo,且當前為非 root 用戶', checkLicense: '檢查節點許可證狀態', checkService: '檢查節點已存在服務信息', checkPort: '檢查節點端口可達', diff --git a/frontend/src/lang/modules/zh.ts b/frontend/src/lang/modules/zh.ts index fdd76c93d..cc7212920 100644 --- a/frontend/src/lang/modules/zh.ts +++ b/frontend/src/lang/modules/zh.ts @@ -3120,6 +3120,8 @@ const message = { nodeCheck: '可用性检查', checkSSH: '检查节点 SSH 连接', + checkUserPermission: '检查节点用户权限', + isNotRoot: '检查到该节点不支持免密 sudo,且当前为非 root 用户', checkLicense: '检查节点许可证状态', checkService: '检查节点已存在服务信息', checkPort: '检查节点端口可达',