排查多用户共享服务器资源抢占与权限问题,关键在于建立“谁在用、用什么、能不能用、为什么不能用”四层判断链:先用who、top、lsof等确认登录用户及资源占用;再检查目录属组、setgid位、ACL继承性;最后排查挂载选项、SELinux、磁盘配额等隐藏拦截点。

排查多用户共享服务器时的资源抢占与权限问题,关键不是逐个查命令,而是建立“谁在用、用什么、能不能用、为什么不能用”这四层判断链。下面分三块说清楚。
看当前谁在用、用了什么资源
先摸清现场状况,避免凭空猜测:
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
-
谁登录了:用
who或w查当前在线用户和终端,last -n 10看最近登录记录,确认是否有异常账号 -
谁占了CPU/内存:
top -u按用户筛选进程,或ps -u username -o pid,ppid,%cpu,%mem,cmd精准定位某用户下的高负载进程 -
谁锁了磁盘IO或大文件:
lsof +D /home查所有用户对/home的打开文件;iotop -o只显示实际在做IO的进程,带用户名
查共享目录的归属与权限设计是否合理
多用户协作最常出问题的地方是目录权限没按角色分层:
-
检查目录属主和权限:比如共享目录
/project/team_data,运行ls -ld /project/team_data,确认属组是否为协作组(如dev_team),权限是否为drwxrws---(含 setgid 位) -
验证用户是否真在目标组里:用
groups username看该用户所属组,注意usermod -aG才是追加,漏掉-a会清空原有组 -
检查ACL是否覆盖基础权限:如果用了
setfacl,用getfacl /project/team_data查看详细规则,特别留意default:条目是否设置,否则新建文件不继承权限
识别隐藏拦截点:不只是 chmod 和 chown
即使权限位看着没问题,仍可能被更高层机制拦住:
-
挂载选项限制:运行
mount | grep $(df . | awk 'NR==2 {print $1}'),确认共享目录所在分区没挂成noexec、nosuid或ro -
SELinux 干预:执行
sestatus,若为enforcing,临时用sudo setenforce 0测试是否恢复;再查具体拒绝日志:ausearch -m avc -ts recent | audit2why -
磁盘配额超限:普通用户写不进文件,未必是权限问题,可能是配额满:
quota -u username或repquota -a查看使用情况

















