Linux系统的ECS实例中,启动SSH服务时提示“must be owned by root and not group or world-writable”错误怎么办?

本文介绍在Linux系统的ECS实例中,启动SSH服务时提示“must be owned by root and not group or world-writable”错误的错误原因和解决方案。

问题现象

Linux系统的ECS实例中,启动SSH服务时提示“must be owned by root and not group or world-writable”错误。

启动ssh失败

问题原因

SSH服务基于安全性考虑,对服务相关的目录或文件的权限配置、属组等都有要求。如/var/empty/sshdOwner属性与Group属性为root用户和root用户组,当/var/empty/sshdOwner属性与Group属性为其他时,则会出现异常。

解决方案

您可以修改/var/empty/sshd目录的Owner属性与Group属性,以解决此问题。

  1. 使用VNC远程连接ECS实例。

    具体操作,请参见连接方式概述

  2. 执行如下命令,查看/var/empty/sshd目录权限配置。

    ll -d /var/empty/

    系统显示类似如下,表示/var/empty/sshd目录Owner属性与Group属性为Linux和Linux,需要修改为root用户和root用户组。

    下载
  3. 依次执行如下命令,恢复默认配置。

    重要

    以下chmod命令适用于CentOS 7,并非所有Linux发行版本中/var/empty/sshd目录都是711权限,您可以参考相同发行版本的实例目录权限进行配置。

    chown -R root:root /var/empty/sshd
    chmod -R 711 /var/empty/sshd
  4. 执行如下命令,重启SSH服务。

    systemctl restart sshd.service