Linux系统从诞生之初就采用了多用户多任务的设计架构,天然支持多个用户同时使用系统,无论是通过本地终端登录还是远程SSH连接,都可以实现多个用户并行操作,彼此之间的进程和资源在默认配置下是相互隔离的。
Linux多用户的实现原理
Linux通过用户ID(UID)和组ID(GID)来区分不同的用户身份,每个用户在系统中都有独立的权限范围,系统内核会为每个用户维护独立的进程上下文和资源配额。多个用户同时使用时,内核会通过时间片轮转的方式调度CPU资源,让不同用户的进程看起来像是在同时运行,实际是快速切换执行。
用户数量的影响因素
Linux本身没有对用户总数设置固定的上限,实际可同时使用的用户数量主要受以下因素影响:
- 系统硬件资源:CPU核心数、内存大小、磁盘IO性能都会限制同时运行的用户进程数量,内存不足时会导致进程被杀死或者系统卡顿
- 系统配置限制:通过
ulimit命令可以设置单个用户的最大进程数、最大打开文件数等限制,避免单个用户占用过多资源 - 远程登录服务配置:如果是通过SSH远程登录,SSH服务的配置文件中可以设置最大并发连接数,默认通常是10个左右,可根据需求调整
查看当前登录的用户
可以通过系统自带的命令快速查看当前所有登录到系统的用户信息,常用的命令有以下两个:
使用who命令
who命令可以显示当前登录用户的用户名、登录终端、登录时间以及登录来源IP等信息,执行结果如下:
# 查看当前所有登录用户 who # 输出示例 root pts/0 2024-05-20 10:30 (192.168.1.100) testuser pts/1 2024-05-20 10:35 (192.168.1.101)
使用w命令
w命令比who命令输出的信息更详细,还会显示每个用户当前正在执行的命令以及资源占用情况:
# 查看详细登录用户及资源占用 w # 输出示例 10:40:01 up 2 days, 3:20, 2 users, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 192.168.1.100 10:30 0.00s 0.05s 0.00s w testuser pts/1 192.168.1.101 10:35 2.00s 0.02s 0.02s top
多用户同时使用的配置示例
如果需要调整SSH服务允许的最大并发登录数,可以修改SSH的配置文件,以下是具体的操作步骤:
修改SSH配置
SSH的配置文件通常位于/etc/ssh/sshd_config,找到MaxSessions和MaxStartups两个配置项:
# 编辑SSH配置文件 vim /etc/ssh/sshd_config # 配置项说明 # MaxSessions:每个网络连接允许的最大会话数,默认10 # MaxStartups:允许同时发起的未认证连接最大数量,默认10:30:100,表示最多10个未认证连接,超过10个时拒绝30%的连接,超过100个时全部拒绝 # 调整为允许最多20个并发会话 MaxSessions 20 MaxStartups 20:30:100
重启SSH服务生效
修改完配置后需要重启SSH服务让配置生效,不同Linux发行版的重启命令略有区别:
# CentOS/RHEL系统重启SSH服务 systemctl restart sshd # Ubuntu/Debian系统重启SSH服务 systemctl restart ssh
多用户使用的注意事项
多个用户同时使用Linux系统时,需要注意以下几点避免出现问题:
- 权限控制:合理设置文件和目录的权限,避免普通用户误修改系统关键文件,敏感操作尽量仅给root用户授权
- 资源监控:定期通过
top、htop等命令监控系统资源使用情况,避免某个用户运行高负载进程影响其他用户使用 - 会话管理:长时间不使用的登录会话建议及时退出,避免占用系统资源,也可以通过
pkill -u 用户名命令强制结束某个用户的所有进程
注意:如果是生产环境的Linux服务器,建议结合用户权限管理和资源配额工具(如quota)来规范多用户的使用行为,保障系统稳定运行。