大家好,我是深耕Linux运维和云原生领域8年的老关。最近公司招了几个00后实习生,本来以为现在的年轻人接触技术早,Linux基础应该没问题,结果发现一个很普遍的问题:大家都在学Docker、K8s、AI大模型部署这些热门技术,但一到最基础的用户管理、文件权限、进程操作就频频踩坑。

上周就有个实习生,为了图方便直接给整个根目录执行了chmod 777 -R /,结果服务器直接崩溃,我们花了3个小时才恢复数据。这件事让我意识到,哪怕到了2026年云原生全面普及的今天,Linux的基础操作依然是所有技术人的基本功。很多看似复杂的生产环境问题,追根溯源都是基础不牢导致的。

今天我就结合自己8年的实战经验,还有最近带新人遇到的高频问题,给大家系统梳理一下Linux用户与系统基础操作的核心知识点,以及那些90%的人都会踩的坑。这篇文章没有空洞的理论,全是我亲手验证过的实操步骤和避坑指南,不管你是刚入门的新手,还是想巩固基础的老运维,都能有所收获。
在这里插入图片描述

一、用户与用户组管理:系统安全的第一道防线

用户管理是Linux系统最基础也是最重要的安全机制。在生产环境中,我们永远不会直接用root用户操作,所有任务都应该通过普通用户配合sudo权限完成。

1. 用户创建与删除:别再只会用useradd

很多人创建用户就只会敲useradd 用户名,这其实是最容易出问题的用法。我整理了2026年生产环境中最常用的参数组合:

# 推荐的用户创建命令:自动创建家目录+指定shell+添加到附加组
useradd -m -s /bin/zsh -G docker,devops dev
  • -m:自动创建/home/dev家目录(必须加,否则会导致后续登录失败)
  • -s:指定默认shell,现在越来越多开发者用zsh代替bash
  • -G:添加到附加组,多个组用逗号分隔
  • -u:指定UID,在多服务器环境中保持UID一致可以避免权限混乱

删除用户时也要注意加参数:

# 彻底删除用户,包括家目录和邮件
userdel -r dev

很多人忘了加-r,导致服务器上残留大量无用的家目录文件,时间长了会占用大量磁盘空间。

💡 小技巧:在Debian/Ubuntu系统中,adduser是交互式命令,会引导你一步步设置用户信息,对新手更友好。

2. 用户组管理:批量权限管理的利器

当你需要给多个用户分配相同的权限时,用户组就派上用场了。最常用的命令就三个:

  • groupadd ops:创建ops用户组
  • groupdel ops:删除ops用户组
  • usermod -aG ops dev:把dev用户添加到ops组

重点避坑:添加用户到附加组时一定要加-a参数!如果不加-ausermod -G会覆盖用户之前的所有附加组,导致用户失去之前的权限。我见过不止一个运维因为这个错误,把自己从sudo组里踢出去了。

查看用户所属组:

groups dev  # 简洁显示
id dev      # 详细显示UID、GID和所有组ID

3. sudo权限配置:最容易出问题的地方

sudo是生产环境中最常用的权限提升工具,但也是最容易配置错误的地方。永远不要直接编辑/etc/sudoers文件,一定要用visudo命令,它会自动检查语法错误,避免你把sudo搞坏。

sudoers文件的基本格式:

用户名 主机名=(运行身份) 命令

生产环境中常用的配置:

# 给dev用户授予所有命令的sudo权限(谨慎使用)
dev ALL=(ALL:ALL) ALL

# 更安全的做法:只授予必要的权限
dev ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx
dev ALL=(ALL) /usr/bin/docker ps, /usr/bin/docker logs

⚠️ 重要提醒:NOPASSWD参数虽然方便,但有很大的安全风险,建议只在自动化脚本等特定场景下使用。

如果遇到“用户不在sudoers文件中”的错误,解决方法很简单:用root用户执行visudo,在文件末尾添加一行即可。

4. 用户切换:susudo su的区别,别再搞混了

很多人分不清这几个切换用户的命令,我给大家讲清楚它们的区别:

  • su dev:切换到dev用户,但不会切换环境变量,工作目录也保持不变,不推荐使用
  • su - dev:完全切换到dev用户,包括环境变量和工作目录,推荐使用
  • sudo su - root:用当前用户的sudo权限切换到root,不需要输入root密码,生产环境常用
  • sudo -i:和上面的命令效果完全一样,也是切换到root并加载环境变量

二、系统基础操作:日常运维的核心技能

这部分是Linux运维每天都要用到的技能,我会重点讲基础命令和2026年流行的增强工具,帮大家提高工作效率。

1. 文件与目录操作:这些增强工具能让你效率翻倍

基础命令lscdpwdmkdirrmcpmv大家肯定都会,我就不啰嗦了。这里给大家推荐几个2026年几乎每个运维都在用的增强工具:

基础命令 增强工具 核心优势
ls exa 彩色输出、Git集成、树状显示、速度提升300%
cat bat 语法高亮、行号显示、Git集成、自动分页
find fd 搜索速度是find的10倍以上,语法更简洁
grep rg 递归搜索速度极快,支持正则和多种编码

使用示例:

# 用exa查看文件,显示Git状态和树状结构
exa -l --git --tree -L 2

# 用bat查看nginx配置文件,自动语法高亮
bat /etc/nginx/nginx.conf

# 用fd搜索/var/log目录下所有.log文件
fd "*.log" /var/log

# 用rg搜索nginx日志中的error关键字(忽略大小写)
rg -i "error" /var/log/nginx/access.log

⚠️ 重要提醒:基础命令一定要先掌握,增强工具只是锦上添花。生产环境中很多服务器不会预装这些工具,到时候你总不能说“我只会用exa不会用ls”吧?

2. 文件权限管理:90%的系统问题都和权限有关

我敢说,你遇到的90%的Linux系统问题,最终都能追溯到权限问题。所以这部分一定要学扎实。

文件权限的基本概念:

  • 三个身份:所有者(u)、所属组(g)、其他人(o)
  • 三种权限:读(r=4)、写(w=2)、执行(x=1)

数字权限表示法:

  • 755:rwxr-xr-x(目录和可执行文件常用)
  • 644:rw-r–r–(普通文件常用)
  • 700:rwx------(家目录常用,只有所有者能访问)

修改权限和所有者:

# 修改文件权限
chmod 755 script.sh

# 递归修改目录下所有文件的权限
chmod -R 644 /home/dev/project

# 修改文件所有者和所属组
chown dev:dev /home/dev/project

然后是很多人搞不懂的特殊权限:

  • SUID:执行文件时以文件所有者的身份运行,比如passwd命令(权限是rwsr-xr-x)
  • SGID:目录下新建的文件继承目录的所属组,适合团队协作目录
  • Sticky Bit:只有文件所有者和root才能删除目录下的文件,比如/tmp目录(权限是rwxrwxrwt)

绝对禁止:给普通二进制文件添加SUID权限,这会导致严重的提权漏洞。

3. 进程管理:快速定位和解决服务问题

进程管理是排查服务问题的核心技能。基础命令我就讲最常用的:

# 查看所有进程的详细信息
ps aux

# 查看进程的父子关系
ps -ef

# 以树状结构显示进程关系(非常直观)
pstree -p

实时监控工具推荐:

  • htop:比top好用10倍,支持鼠标操作、彩色输出、进程排序
  • btop:2026年最火的系统监控工具,支持CPU、内存、磁盘、网络、GPU的实时监控,界面非常炫酷

进程终止命令:

  • kill 进程ID:发送TERM信号,优雅终止进程(优先使用
  • kill -9 进程ID:发送KILL信号,强制终止进程(不到万不得已不要用)
  • pkill nginx:根据进程名终止所有nginx进程

现在所有主流Linux发行版都用systemd管理服务了,所以systemctl命令一定要熟练掌握:

systemctl start nginx    # 启动服务
systemctl stop nginx     # 停止服务
systemctl restart nginx  # 重启服务
systemctl status nginx   # 查看服务状态
systemctl enable nginx   # 设置开机自启
systemctl disable nginx  # 取消开机自启
systemctl daemon-reload  # 重新加载配置文件

4. 系统资源监控:提前发现性能瓶颈

日常运维中,我们需要经常监控系统资源使用情况,提前发现性能瓶颈。常用命令:

# 查看内存使用情况(人类可读格式)
free -h

# 查看磁盘分区使用情况
df -h

# 查看/home目录的总大小
du -sh /home

# 查看所有TCP和UDP监听端口(代替老旧的netstat)
ss -tuln

# 查看磁盘IO情况
iostat -x 1

如果需要一站式监控所有系统资源,我推荐glances工具。它是一个跨平台的系统监控工具,支持CPU、内存、磁盘、网络、进程、传感器等所有资源的监控,还支持远程监控,用法非常简单,直接输入glances即可。

三、实战避坑指南:这些错误我至少犯过3次

这部分是整篇文章的精华,都是我在生产环境中踩过无数次坑总结出来的经验,大家一定要认真看。

1. 用户创建忘记加-m参数

坑点:创建用户时如果不加-m,系统不会自动创建家目录,用户登录时会出现“Could not chdir to home directory”的错误,而且很多配置文件无法生成。

解决方法

# 事后手动创建家目录并设置正确权限
mkdir /home/dev
chown dev:dev /home/dev
chmod 700 /home/dev

预防措施:养成习惯,创建用户时一定加-m参数。

2. sudo配置错误导致无法使用sudo

坑点:很多人直接编辑/etc/sudoers文件,或者在visudo时写错语法,导致sudo命令无法使用。如果你的服务器禁止了root直接登录,那就只能进单用户模式修复了。

解决方法

  1. 永远用visudo命令编辑sudoers文件
  2. 如果已经出错,重启服务器进入GRUB菜单,选择“Advanced options”→“recovery mode”,进入root shell后执行visudo修正错误

3. 滥用chmod 777

坑点:这是我见过最多人犯的错误。遇到权限问题就直接chmod 777,虽然能暂时解决问题,但会导致所有用户都能读写执行该文件,存在严重的安全风险。如果给根目录执行chmod 777 -R /,系统会直接崩溃。

解决方法

  • 永远不要使用chmod 777,根据实际需求设置最小权限
  • 目录一般设置为755,普通文件644,可执行文件755
  • 如果不小心执行了错误的chmod命令,可以从其他正常的服务器复制权限,或者重新安装相关系统包

4. 随便用kill -9终止进程

坑点kill -9会强制终止进程,不给进程保存数据和清理资源的机会。对于数据库、消息队列等重要服务,用kill -9可能导致数据丢失、文件损坏,甚至服务无法启动。

解决方法

  • 优先使用kill 进程ID让进程优雅终止
  • 如果进程没有响应,等待30秒后再考虑用kill -9
  • 重要服务一定要用自带的停止命令,比如systemctl stop mysql

5. 云服务器权限隔离不到位

坑点:在云原生环境下,很多公司用同一台服务器部署多个服务。如果所有服务都用root用户运行,一旦某个服务被攻破,攻击者就能获得整个服务器的控制权。

解决方法

  • 每个服务都用独立的普通用户运行
  • 禁止root用户直接通过SSH登录(修改/etc/ssh/sshd_config中的PermitRootLoginno
  • 全面使用SSH密钥登录,禁用密码登录

四、2026年技术趋势:Linux基础操作的新变化

技术一直在发展,Linux基础操作也在不断演变。作为技术人,我们要紧跟趋势,了解最新的技术变化。

1. 容器化与用户命名空间

现在Docker和K8s已经成为主流,容器安全越来越受重视。用户命名空间(User Namespace)可以将容器内的root用户映射到宿主机上的普通用户,有效防止容器逃逸攻击。

2026年,几乎所有云厂商的容器服务都默认开启了用户命名空间。作为运维人员,你需要了解它的工作原理,以及它对文件权限的影响。

2. 无密码认证全面普及

密码登录存在被暴力破解的风险,现在越来越多的公司开始全面推行无密码认证。除了传统的SSH密钥登录,还有基于OAuth2的SSH认证(比如GitHub SSH)和基于硬件密钥的认证(比如YubiKey)。

很多云厂商已经支持将SSH密钥与云账号绑定,实现统一的身份认证和权限管理。

3. 自动化用户管理

在大规模集群环境下,手动管理用户已经不现实了。现在主流的自动化工具如Ansible、Puppet都支持批量管理服务器用户。

2026年,很多公司已经实现了用户管理的全自动化:员工入职时自动在所有服务器上创建用户,离职时自动删除用户,大大提高了效率和安全性。

4. 安全强化成为标配

随着网络攻击越来越频繁,Linux系统的安全强化已经成为标配。现在主流的Linux发行版(RHEL 9、Ubuntu 24.04)都默认开启了SELinux或AppArmor,以及防火墙。

很多人遇到问题就直接关闭SELinux,这是非常危险的做法。我们应该学会配置这些安全工具,而不是简单地关闭它们。

五、个人实战复盘总结

最后,我想和大家分享几点我这么多年的Linux使用心得:

  1. 基础永远是最重要的:不管技术怎么更新,Linux的用户管理、文件权限、进程操作这些基础知识点永远不会过时。很多看似复杂的生产环境问题,其实都是基础不牢导致的。

  2. 安全第一:在Linux系统中,权限管理是安全的核心。永远遵循最小权限原则,不要为了图方便而牺牲安全。一个小小的权限配置错误,可能会导致整个系统被攻破。

  3. 多实操少空谈:Linux是一门实践性很强的技术,只有多动手操作,才能真正掌握。建议大家在自己的虚拟机上多做练习,不要在生产环境上随便测试命令。

  4. 拥抱新工具但不依赖新工具:新的增强工具能提高效率,但基础命令一定要先掌握。生产环境千变万化,你永远不知道下一台服务器上安装了什么工具。

如果你在Linux操作中遇到过什么奇葩的坑,欢迎在评论区留言分享,我们一起交流学习。如果这篇文章对你有帮助,别忘了点赞、收藏、关注,我会持续分享更多实战技术干货。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐