开发者社区 问答 正文

i-wz9e4k1y0gs0wy0l5xhz系统异常,权限操作失误导致sudo无法使用


失误操作: chmod -R 7 / , 导致ssh无法链接,及sudo错误sudo: /usr/lib/sudo/sudoers.so must be owned by uid 0
如何修复?

展开
收起
easyeasy3 2018-10-05 02:40:43 926 分享 版权
阿里云 AI 助理回答

由于您执行了 chmod -R 7 / 命令,这将所有文件和目录的权限设置为最大权限(777),导致系统中的关键文件和目录安全性降低,进而影响了SSH服务和sudo命令的正常工作。根据您的情况,需要逐步修复涉及的权限问题,特别是与SSH服务和sudo相关的文件权限。以下是一套修复步骤:

步骤1:恢复SSH相关文件权限

  1. 通过VNC方式连接ECS实例
  2. 检查并修复SSH服务所需的特定目录和文件权限,尤其是 /etc/ssh/ssh_host_* 文件,应将其权限更正为600。

    cd /etc/ssh/
    sudo chmod 600 ssh_host_rsa_key
    sudo chmod 600 ssh_host_dsa_key
    sudo chmod 600 ssh_host_ecdsa_key
    sudo chmod 600 ssh_host_ed25519_key
    
  3. 确认公钥文件权限正确,一般为644。

    sudo chmod 644 *.pub
    
  4. 重启SSH服务以应用更改。

    sudo systemctl restart sshd.service
    

步骤2:修复sudoers.so文件权限

sudo命令报错提示/usr/lib/sudo/sudoers.so must be owned by uid 0,说明该文件的属主或权限不正确。需进行如下操作:

cd /usr/lib/sudo/
sudo chown root:root sudoers.so
sudo chmod 4755 sudoers.so

确保sudoers.so文件属于root用户且具有正确的权限设置。

步骤3:检查并修复其他系统关键文件和目录权限

由于您执行的命令影响广泛,可能还涉及到其他系统关键组件的权限问题。建议检查以下重要目录和文件的权限是否正确:

  • /etc 目录下的配置文件通常应为644或600。
  • /bin, /sbin, /usr/bin, /usr/sbin 中的可执行文件应为755。
  • /var/log 日志目录及其内容可以是755或644。
  • 确保所有系统二进制文件和库文件由root拥有,并且权限适当。

注意事项

  • 谨慎操作:在修改权限时务必小心,错误的权限设置可能会进一步破坏系统功能。
  • 备份重要数据:在进行大规模权限修复前,如果可能,建议先备份重要数据以防万一。
  • 逐项修复:针对具体报错信息,逐一排查并修复,避免盲目批量更改权限。

以上步骤应该能帮助您解决因权限设置错误导致的SSH无法连接及sudo命令异常的问题。如果问题依然存在,可能需要更深入地检查系统日志或考虑联系技术支持获取帮助。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答