当前位置: 首页 > news >正文

Linux用户权限与进程管理深度解析

用户权限管理和进程控制是Linux系统管理的两大核心技能。掌握这些知识不仅能确保系统安全,还能有效监控和优化系统性能。本文将深入解析Linux的用户组织架构、权限控制机制和进程管理技术。

文章目录

  • 一.用户与组管理体系
    • 用户分类和标识
      • UID分类标准
    • 用户配置文件详解
      • /etc/passwd 文件结构
      • /etc/shadow 密码文件
    • 组管理配置
      • /etc/group 组配置文件
      • /etc/gshadow 组密码文件
  • 二.文件权限控制系统
    • UGO权限模型
      • 权限数值对应关系
      • 权限表示方法
    • 权限修改命令
      • chmod - 修改文件权限
      • chown - 修改文件所有权
    • 组管理命令
  • 三.进程管理深度解析
    • 进程类型分类
      • 按运行方式分类
      • 进程状态标识符
      • 进程运行状态
    • 进程查看命令
      • ps - 静态进程查看
      • 获取进程ID的多种方法
    • 动态进程监控
      • top - 实时进程监控
    • 进程信号控制
      • kill - 发送信号给进程
    • 进程优先级管理
      • 优先级范围和类型
      • 优先级调整命令
  • 四.作业控制和后台运行
    • Screen 会话管理
    • 后台进程管理
      • nohup - 不挂断运行
      • 作业控制命令
  • 五.实践应用场景
    • 系统管理最佳实践
    • 常见故障排查
  • 六.总结

一.用户与组管理体系

用户分类和标识

Linux系统中每个用户都有唯一的用户标识符(UID)和所属组标识符(GID):

UID分类标准

0           # 超级用户 (root)
1-99        # 系统自动创建的系统用户
100-499     # 手动创建的系统用户 (伪用户)
500-65535   # 普通用户

常见的系统用户包括:

  • root: 系统管理员,拥有最高权限
  • www: Web服务器用户,运行Apache/Nginx
  • ftp: FTP服务用户
  • mysql: 数据库服务用户

用户配置文件详解

/etc/passwd 文件结构

root:x:0:0:root:/root:/bin/bash

字段解析:

用户名:密码占位符:UID:GID:描述信息:家目录:默认Shell
  • 用户名: 登录系统使用的名称
  • 密码占位符: x 表示密码存储在 /etc/shadow
  • UID: 用户唯一标识符
  • GID: 用户主组标识符
  • 描述信息: 用户全名或备注
  • 家目录: 用户登录后的默认目录
  • 默认Shell: 用户登录后使用的命令解释器

/etc/shadow 密码文件

root:$6$salt$hashedpassword:18800:0:99999:7:14:19000:

字段含义:

用户名:加密密码:最后修改时间:最小修改间隔:密码有效期:过期警告期:宽限期:账号失效时间:保留字段
  • 加密密码: 使用SHA-512算法加密
  • 时间字段: 以1970年1月1日为起点的天数
  • 密码策略: 控制密码修改和失效规则

组管理配置

/etc/group 组配置文件

users:x:1000:alice,bob

格式说明:

组名:组密码占位符:GID:组成员列表

/etc/gshadow 组密码文件

users:*:admin:alice,bob,charlie

字段解析:

组名:加密密码:组管理员:组附加用户列表

二.文件权限控制系统

UGO权限模型

Linux采用UGO (User, Group, Other) 权限模型:

权限数值对应关系

r (读取) = 4
w (写入) = 2
x (执行) = 1
- (无权限) = 0

权限表示方法

rw-r--r--  # 644 权限示例
rwx------   # 700 权限示例
rwxr-xr-x   # 755 权限示例

权限组成:

  • 前3位: 文件所有者权限 (User)
  • 中3位: 所属组权限 (Group)
  • 后3位: 其他用户权限 (Other)

权限修改命令

chmod - 修改文件权限

# 数字方式修改权限
chmod 755 filename
chmod 644 filename# 符号方式修改权限
chmod u+x filename      # 给所有者添加执行权限
chmod g-w filename      # 移除组写权限
chmod o=r filename      # 设置其他用户只读权限
chmod a+r filename      # 给所有用户添加读权限

chown - 修改文件所有权

# 修改文件所有者
chown username filename# 修改文件所有者和组
chown username:groupname filename# 仅修改文件所属组
chown :groupname filename# 递归修改目录权限
chown -R username:groupname directory/

组管理命令

# 创建组
groupadd groupname
groupadd -g 9008 users2     # 指定GID创建组# 修改组名
groupmod -n newname oldname# 删除组
groupdel groupname# 设置组密码
gpasswd groupname# 设置组管理员
gpasswd -A username groupname# 添加用户到组
gpasswd -a test2 users1
usermod -a -G groupname username# 从组中移除用户
gpasswd -d username groupname

三.进程管理深度解析

进程类型分类

按运行方式分类

  • 守护进程 (Daemon): 系统启动时启动,与终端无关,持续运行
  • 前台进程: 与终端关联,通过终端启动和控制

进程状态标识符

<    # 高优先级进程
N    # 低优先级进程
+    # 前台进程组成员
s    # 会话领导进程
l    # 多线程进程

进程运行状态

R    # Running (运行中)
S    # Sleep (睡眠)
D    # Disk Sleep (不可中断睡眠)
T    # Stopped (停止)
Z    # Zombie (僵尸进程)
X    # Dead (死亡)

进程查看命令

ps - 静态进程查看

# 查看所有与终端相关的进程
ps -aux
# a = 显示与终端相关的进程
# u = 以用户为中心显示
# x = 显示与终端无关的进程# 查看所有进程详细信息
ps -ef
# e = 显示所有进程
# f = 显示完整格式信息

获取进程ID的多种方法

# 方法1: 查看PID文件
cat /run/sshd.pid# 方法2: 使用grep过滤
ps aux | grep sshd# 方法3: 使用pgrep命令
pgrep -l sshd# 方法4: 使用pidof命令
pidof sshd# 显示进程树
pstree

动态进程监控

top - 实时进程监控

# 基本使用
top# 设置刷新间隔
top -d 1                    # 每秒刷新一次# 监控指定进程
top -d 1 -p [进程ID]# 监控指定用户的进程
top -d 1 -u username

top界面常用交互命令:

  • q: 退出
  • k: 杀死进程
  • r: 调整进程优先级
  • M: 按内存使用率排序
  • P: 按CPU使用率排序

进程信号控制

kill - 发送信号给进程

# 查看所有可用信号
kill -l# 常用信号控制
kill -1 [进程ID]     # SIGHUP: 重新加载配置
kill -2 [进程ID]     # SIGINT: 中断进程 (Ctrl+C)
kill -9 [进程ID]     # SIGKILL: 强制终止进程
kill -15 [进程ID]    # SIGTERM: 正常终止进程 (默认)# 批量终止进程
killall processname
pkill processname

进程优先级管理

优先级范围和类型

实时优先级: 0-99    (数字越小优先级越高)
静态优先级: 100-139 (数字越小优先级越高)
Nice值: -20 到 19   (数字越小优先级越高)

优先级调整命令

# 以指定nice值启动程序
nice -n 10 command# 查看进程nice值
ps axo pid,command,nice --sort=nice# 调整运行中进程的nice值
renice -10 [进程ID]     # 提高优先级
renice 15 [进程ID]      # 降低优先级# 后台运行低优先级任务
sleep 60 &              # 后台睡眠60秒

四.作业控制和后台运行

Screen 会话管理

# 创建新的screen会话
screen -S sessionname# 创建并执行命令
screen -S 'ping_google' -d -m ping www.google.com# 列出所有screen会话
screen -list# 恢复screen会话
screen -r sessionname# 分离当前会话
Ctrl + A, D# 终止所有screen进程
pkill screen

后台进程管理

nohup - 不挂断运行

# 后台运行脚本,输出重定向到文件
nohup ./script.sh &# 后台运行并指定输出文件
nohup ./script.sh > output.log 2>&1 &# 查看nohup进程
jobs                    # 查看当前会话的作业
ps aux | grep script    # 查看具体进程

作业控制命令

# 将前台进程放入后台
Ctrl + Z                # 暂停当前前台进程
bg                      # 继续在后台运行# 将后台进程调到前台
fg                      # 将最近的后台作业调到前台
fg %1                   # 将作业号为1的进程调到前台# 查看作业状态
jobs -l                 # 显示详细作业信息

五.实践应用场景

系统管理最佳实践

  1. 权限最小化原则: 只给用户必需的最小权限
  2. 定期清理进程: 及时清理僵尸进程和无用进程
  3. 监控系统资源: 使用top、htop监控系统性能
  4. 合理调整优先级: 为重要进程分配更高优先级

常见故障排查

# 查找占用资源最多的进程
ps aux --sort=-%cpu | head -10    # CPU占用最高的10个进程
ps aux --sort=-%mem | head -10    # 内存占用最高的10个进程# 查找僵尸进程
ps aux | grep -w Z# 查找特定端口的进程
netstat -tulpn | grep :80
lsof -i :80

六.总结

Linux用户权限和进程管理是系统管理的核心技能。通过本文的深入讲解,读者应该能够:

  • 理解Linux用户组织架构和配置文件结构
  • 掌握UGO权限模型和权限修改方法
  • 熟练使用进程查看和控制命令
  • 有效管理进程优先级和后台任务
  • 应用Screen和nohup进行高级作业控制

这些技能为构建安全、高效的Linux系统环境奠定了坚实基础。建议读者通过实际操作加深理解,逐步提升系统管理能力。掌握这些核心概念后,就能够有效管理多用户环境,优化系统性能,确保系统稳定运行。

http://www.dtcms.com/a/393052.html

相关文章:

  • [数据结构] 反射,枚举与lambda表达式
  • 奇异值:数据科学的数学基石与应用核心
  • Python 2025:安全编程与漏洞防范实战指南
  • ​​[硬件电路-286]:高速轨到轨比较器TLV3603DCKR 功能概述与管脚定义
  • CAR 细胞疗法:破解自身免疫性疾病的 “免疫纠错” 新路径
  • FreeRTOS实战指南 — 5 多任务系统实现流程
  • `css`使单词保持连贯的两种方法
  • 【Vue3 ✨】Vue3 入门之旅 · 第三篇:模板语法与数据绑定
  • 分类预测 | Matlab实现PCA-BP主成分分析结合BP神经网络多特征分类预测
  • 【Linux】进程优先级切换调度
  • Ubuntu24上安装Scrapy框架实战
  • 正向shell,反弹shell学习
  • 一维数组原地更新——力扣119.杨辉三角形II
  • Python语法学习-1
  • Linux基础命令大全
  • 9.21 快速选择
  • 【常见集合】HashMap
  • Docker安装小白教程(阿里yum)
  • MySQL表结构变更详解:ALTER TABLE ADD COLUMN语法、最佳实践与避坑指南
  • 【LeetCode - 每日1题】设计电子表格
  • Spring 中 REQUIRED 事务的回滚机制详解
  • C++框架中基类修改导致兼容性问题的深度分析与总结
  • 学习笔记-SpringBoot项目配置
  • Java数据结构——时间和空间复杂度
  • 如何在接手新项目时快速上手?
  • Zynq开发实践(SDK之自定义IP2)
  • 数据库相关锻炼
  • PostgreSQL 入门与实践
  • pytorch基本运算-PyTorch.Tensor张量数据类型
  • 数据结构与算法 第三章 栈