You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行chmod命令导致sudo权限失效及用户账户无法访问的问题排查请求

执行chmod命令导致sudo权限失效及用户账户无法访问的问题排查请求

兄弟,你这情况我在社区里见太多次了——乱改权限尤其是递归777简直是系统杀手!先帮你拆解下你执行的两个命令,找找问题根源:

先看你执行的两个命令

  1. 第一个命令:sudo chmod 777 . -r
    这命令参数顺序完全错了!chmod的正确用法是「选项在前,然后是权限,最后才是目标文件/目录」。你把-r放在最后,shell会把它当成第二个要改权限的文件/目录,而不是你可能想写的递归选项(递归是大写的-R)。如果当时你所在的目录里刚好有个叫-r的文件/文件夹,它会被改成777;如果没有,这个命令其实会报错,但你可能没注意到错误输出。

  2. 第二个命令:sudo chmod -R 777 .
    这个语法本身没问题,但致命的点在于你操作的这个目录是不是挂载了系统关键内容?

分析你遇到的两个核心问题

为什么第二次sudo不用输密码?

这个其实可能是sudo的正常行为——sudo默认会缓存你的密码5分钟左右,在缓存有效期内重复执行sudo不需要再输密码。但如果之后彻底无法用sudo甚至root都登不上,那肯定是系统核心文件的权限被搞坏了。

为什么所有用户(包括root)都没法访问了?

最可能的两个原因:

  • 如果你操作的/mnt/ssd5/Datasets/是用户主目录的挂载点(比如多个用户的/home实际挂在这里),递归设777会直接毁掉用户主目录里的敏感文件权限:
    • 比如~/.ssh目录要是变成777,SSH会直接拒绝登录(因为权限太宽松,不符合安全要求);
    • 用户的~/.bashrc、~/.profile这些启动文件权限太松,会导致shell登录时直接报错,根本进不去会话;
  • 更糟的情况:如果/mnt/ssd5是根目录/的绑定挂载(比如你之前用mount --bind / /mnt/ssd5把根目录挂到这里),那递归777等于直接改了整个系统的文件权限——像/etc/passwd、/etc/shadow、/usr/bin/sudo这些核心文件权限乱了,sudo直接失效,root也没法正常登录。

现在怎么救?

你现在肯定没法正常登录服务器了,只能通过单用户模式或者救援模式启动:

  1. 开机时进入单用户模式(不同发行版操作不一样:比如Ubuntu是在GRUB菜单按e,把ro改成rw init=/bin/bash;CentOS是同样按e,在末尾加init=/bin/bash);
  2. 先把根分区挂载成可读写模式(如果没自动挂的话,执行mount -o remount,rw /);
  3. 先修复sudo相关的核心权限:
    • 检查/etc/sudoers的权限:必须是-r--r-----(也就是440),所有者是root:root,不对的话执行:chmod 440 /etc/sudoers && chown root:root /etc/sudoers;
    • 检查/usr/bin/sudo的权限:应该是-rwsr-xr-x(4755),不对就执行:chmod 4755 /usr/bin/sudo && chown root:root /usr/bin/sudo;
  4. 如果是用户主目录的问题:
    • 把用户主目录权限改回700:chmod 700 /home/你的用户名;
    • 修复.ssh目录的权限:chmod 700 /home/你的用户名/.ssh && chmod 600 /home/你的用户名/.ssh/authorized_keys && chown -R 你的用户名:你的用户名 /home/你的用户名/.ssh;
  5. 如果是整个根目录的权限都乱了——那基本没救了,要么从备份恢复,要么重装系统吧,手动修复所有文件权限几乎是不可能完成的任务。

备注:内容来源于stack exchange,提问作者Kağan Aytekin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 12:52:59