mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2025-10-09 23:17:21 +08:00
parent
f9d5a445c7
commit
2ed2a7ed8c
1 changed files with 40 additions and 13 deletions
|
@ -18,6 +18,8 @@ import (
|
||||||
"github.com/1Panel-dev/1Panel/backend/utils/common"
|
"github.com/1Panel-dev/1Panel/backend/utils/common"
|
||||||
"github.com/1Panel-dev/1Panel/backend/utils/files"
|
"github.com/1Panel-dev/1Panel/backend/utils/files"
|
||||||
"github.com/1Panel-dev/1Panel/backend/utils/qqwry"
|
"github.com/1Panel-dev/1Panel/backend/utils/qqwry"
|
||||||
|
"github.com/1Panel-dev/1Panel/backend/utils/systemctl"
|
||||||
|
"github.com/pkg/errors"
|
||||||
)
|
)
|
||||||
|
|
||||||
const sshPath = "/etc/ssh/sshd_config"
|
const sshPath = "/etc/ssh/sshd_config"
|
||||||
|
@ -51,19 +53,20 @@ func (u *SSHService) GetSSHInfo() (*dto.SSHInfo, error) {
|
||||||
PermitRootLogin: "yes",
|
PermitRootLogin: "yes",
|
||||||
UseDNS: "yes",
|
UseDNS: "yes",
|
||||||
}
|
}
|
||||||
sudo := cmd.SudoHandleCmd()
|
serviceName, err := loadServiceName()
|
||||||
stdout, err := cmd.Execf("%s systemctl status sshd", sudo)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
data.Message = stdout
|
|
||||||
data.Status = constant.StatusDisable
|
data.Status = constant.StatusDisable
|
||||||
}
|
data.Message = err.Error()
|
||||||
stdLines := strings.Split(stdout, "\n")
|
} else {
|
||||||
for _, stdline := range stdLines {
|
active, err := systemctl.IsActive(serviceName)
|
||||||
if strings.Contains(stdline, "active (running)") {
|
if !active {
|
||||||
|
data.Status = constant.StatusDisable
|
||||||
|
data.Message = err.Error()
|
||||||
|
} else {
|
||||||
data.Status = constant.StatusEnable
|
data.Status = constant.StatusEnable
|
||||||
break
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sshConf, err := os.ReadFile(sshPath)
|
sshConf, err := os.ReadFile(sshPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
data.Message = err.Error()
|
data.Message = err.Error()
|
||||||
|
@ -95,10 +98,14 @@ func (u *SSHService) GetSSHInfo() (*dto.SSHInfo, error) {
|
||||||
|
|
||||||
func (u *SSHService) OperateSSH(operation string) error {
|
func (u *SSHService) OperateSSH(operation string) error {
|
||||||
if operation == "start" || operation == "stop" || operation == "restart" {
|
if operation == "start" || operation == "stop" || operation == "restart" {
|
||||||
sudo := cmd.SudoHandleCmd()
|
serviceName, err := loadServiceName()
|
||||||
stdout, err := cmd.Execf("%s systemctl %s sshd", sudo, operation)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("%s sshd failed, stdout: %s, err: %v", operation, stdout, err)
|
return err
|
||||||
|
}
|
||||||
|
sudo := cmd.SudoHandleCmd()
|
||||||
|
stdout, err := cmd.Execf("%s systemctl %s %s", sudo, operation, serviceName)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("%s %s failed, stdout: %s, err: %v", operation, serviceName, stdout, err)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -106,6 +113,11 @@ func (u *SSHService) OperateSSH(operation string) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (u *SSHService) Update(key, value string) error {
|
func (u *SSHService) Update(key, value string) error {
|
||||||
|
serviceName, err := loadServiceName()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
sshConf, err := os.ReadFile(sshPath)
|
sshConf, err := os.ReadFile(sshPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -130,11 +142,17 @@ func (u *SSHService) Update(key, value string) error {
|
||||||
_, _ = cmd.Execf("%s semanage port -a -t ssh_port_t -p tcp %s", sudo, value)
|
_, _ = cmd.Execf("%s semanage port -a -t ssh_port_t -p tcp %s", sudo, value)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_, _ = cmd.Execf("%s systemctl restart sshd", sudo)
|
|
||||||
|
_, _ = cmd.Execf("%s systemctl restart %s", sudo, serviceName)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (u *SSHService) UpdateByFile(value string) error {
|
func (u *SSHService) UpdateByFile(value string) error {
|
||||||
|
serviceName, err := loadServiceName()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
file, err := os.OpenFile(sshPath, os.O_WRONLY|os.O_TRUNC, 0666)
|
file, err := os.OpenFile(sshPath, os.O_WRONLY|os.O_TRUNC, 0666)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -144,7 +162,7 @@ func (u *SSHService) UpdateByFile(value string) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
sudo := cmd.SudoHandleCmd()
|
sudo := cmd.SudoHandleCmd()
|
||||||
_, _ = cmd.Execf("%s systemctl restart sshd", sudo)
|
_, _ = cmd.Execf("%s systemctl restart %s", sudo, serviceName)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -458,3 +476,12 @@ func handleGunzip(path string) error {
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func loadServiceName() (string, error) {
|
||||||
|
if exist, _ := systemctl.IsExist("sshd"); exist {
|
||||||
|
return "sshd", nil
|
||||||
|
} else if exist, _ := systemctl.IsExist("ssh"); exist {
|
||||||
|
return "ssh", nil
|
||||||
|
}
|
||||||
|
return "", errors.New("The ssh or sshd service is unavailable")
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue