本文介紹在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”錯誤。
May 17 17:31:57 ecs-centos72-test systemd: Failed to start OpenSSH server daemon.
May 17 17:31:57 ecs-centos72-test systemd: Unit sshd.service entered failed state.
May 17 17:31:57 ecs-centos72-test systemd: sshd.service failed.
May 17 17:32:39 ecs-centos72-test systemd: sshd.service holdoff time over, scheduling restart.
May 17 17:32:39 ecs-centos72-test systemd: Starting OpenSSH server daemon...
May 17 17:32:39 ecs-centos72-test sshd: /var/empty/sshd must be owned by root and not group or world-writable.
May 17 17:32:39 ecs-centos72-test systemd: sshd.service: main process exited, code=exited, status=255/n/a
May 17 17:32:39 ecs-centos72-test systemd: Failed to start OpenSSH server daemon.
May 17 17:32:39 ecs-centos72-test systemd: Unit sshd.service entered failed state.
May 17 17:32:39 ecs-centos72-test systemd: sshd.service failed.
問題原因
SSH服務基於安全性考慮,對服務相關的目錄或檔案的許可權配置、屬組等都有要求。如/var/empty/sshdOwner屬性與Group屬性為root使用者和root使用者組,當/var/empty/sshdOwner屬性與Group屬性為其他時,則會出現異常。
解決方案
您可以修改/var/empty/sshd目錄的Owner屬性與Group屬性,以解決此問題。
-
使用VNC遠端連線ECS執行個體。
具體操作,請參見串連方式概述。
-
執行如下命令,查看
/var/empty/sshd目錄許可權配置。ll -d /var/empty/系統顯示類似如下,表示
/var/empty/sshd目錄Owner屬性與Group屬性為Linux和Linux,需要修改為root使用者和root使用者組。[xxx@xxx xxx]# ll /var/empty/ total 4 drwx--x--x. 2 linux linux 4096 Oct 20 2017 sshd -
依次執行如下命令,恢複預設配置。
重要以下chmod命令適用於CentOS 7,並非所有Linux發行版本中/var/empty/sshd目錄都是711許可權,您可以參考相同發行版本的執行個體目錄許可權進行配置。
chown -R root:root /var/empty/sshd chmod -R 711 /var/empty/sshd -
執行如下命令,重啟SSH服務。
systemctl restart sshd.service