系统:centos6.6
同事误操作,在开发环境执行了如下操作,导致ssh无法远程登录。
操作命令:chmod -R 777 /var
ssh远程连接不上,报错如下:
ssh_exchange_identification: Connection closed by remote host
解决思路:因为最后操作是/var目录权限不对导致的无法登陆,所以应该查看sshd服务,以及/var目录下哪些目录权限是有要求的,不能随意修改的。
而且/var是系统目录,里面存在着很多隐藏目录,所以各种百度查询资料。
经过一系列排查,所有系统服务都正常,只是无法远程登录,于是查看日志
还好安装有salt远程管理,可以远程操作,如果此处无法远程操作,那就只能进单用户处理了。
tail /var/log/secure
Jul 11 18:01:18 LFTt-AutoTest01 su: pam_unix(su:session): session closed for user worker
Jul 11 18:01:18 LFTt-AutoTest01 su: pam_unix(su:session): session closed for user root
Jul 12 09:54:39 LFTt-AutoTest01 sudo: worker : TTY=pts/3 ; PWD=/home/worker/logs ; USER=root ; COMMAND=/usr/bin/tail -f nginx/error.log
Jul 12 09:55:07 LFTt-AutoTest01 sudo: worker : TTY=pts/3 ; PWD=/home/worker/logs ; USER=root ; COMMAND=/usr/bin/tail -f php/php_errors.log
Jul 12 10:02:57 LFTt-AutoTest01 sudo: worker : TTY=pts/3 ; PWD=/var/lib ; USER=root ; COMMAND=/bin/chmod 777 php
Jul 12 10:03:28 LFTt-AutoTest01 sudo: worker : TTY=pts/3 ; PWD=/home/worker ; USER=root ; COMMAND=/usr/bin/tail -f logs/nginx/error.log
Jul 12 10:04:48 LFTt-AutoTest01 sudo: worker : TTY=pts/3 ; PWD=/home/worker ; USER=root ; COMMAND=/usr/bin/tail -f logs/php/php_errors.log
Jul 12 10:05:44 LFTt-AutoTest01 sudo: worker : TTY=pts/3 ; PWD=/home/worker ; USER=root ; COMMAND=/bin/chmod -R 777 /var/
Jul 12 11:20:07 LFTt-AutoTest01 sudo: worker : TTY=pts/3 ; PWD=/home/worker ; USER=root ; COMMAND=/bin/su -
tail /var/log/messages
Jul 12 10:35:16 LFTt-AutoTest01 sshd[35808]: fatal: /var/empty/sshd must be owned by root and not group or world-writable.
Jul 12 10:35:18 LFTt-AutoTest01 sshd[35809]: fatal: /var/empty/sshd must be owned by root and not group or world-writable.
果然查看其它服务对比后,发现该目录权限需要是 111
果断修改权限
salt '*9.108' cmd.run 'chmod 111 /var/empty/ /var/empty/sshd'
salt '*9.108' cmd.run '/etc/init.d/sshd restart'
重新远程登录,可以正常访问了。没有问题。