news 2026/2/21 13:59:36

Linux系统管理指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux系统管理指南

Linux系统管理指南

目录

  1. 用户管理
  2. 用户权限管理
  3. 组管理
  4. 系统管控
  5. 安全最佳实践

用户管理

在 Linux 系统中创建一个新用户并确保其拥有独立的/home目录和运行环境是一个非常标准的操作。

通常有两种主要方法:使用友好的adduser命令(推荐)或底层的useradd命令。


方法一:使用adduser命令(最简单,推荐)

在 Ubuntu、Debian 等系统上,adduser是一个交互式脚本,会自动为你创建家目录、设置 Shell 并引导你设置密码。

  1. 执行创建命令:

    Bash

    sudo adduser username

    (将username替换为你想要的名字)

  2. 按照提示操作:

    • 系统会要求你输入并确认密码。
    • 会询问一些用户信息(全名、房间号等),这些可以按Enter跳过。
    • 最后输入Y确认信息正确。

优点:自动创建/home/username目录,并从/etc/skel复制默认配置文件(如.bashrc),确保环境独立且立即可用。


方法二:使用useradd命令(通用,更底层)

如果你使用的是 CentOS、RHEL 或习惯使用底层工具,可以使用useradd注意:默认情况下它可能不会创建家目录,所以需要带上参数。

  1. 执行创建命令:

    Bash

    sudo useradd -m -s /bin/bash username
    • -m:强制创建用户的家目录/home/username
    • -s /bin/bash:指定用户的默认 Shell(通常选 bash)。
  2. 设置密码:

    Bash

    sudo passwd username

    输入两次密码即可。


确保“独立性”与安全性

虽然新用户已经有了独立的目录,但为了确保该账号与其他账号完全隔离(即其他普通用户无法进入该目录),你可以调整权限:

1. 限制目录访问权限

默认情况下,有些系统的/home目录权限允许其他用户读取。如果你想让该账号完全独立私有,可以执行:

Bash

sudo chmod 700 /home/username

这样,除了该用户本人和 root,任何人都无法进入或查看该目录下的文件。

2. 赋予 sudo 权限(可选)

如果你希望这个独立账号也能执行管理任务,可以将其加入 sudo 组:

  • Ubuntu/Debian:sudo usermod -aG sudo username
  • CentOS/RHEL:sudo usermod -aG wheel username

验证新用户

你可以尝试切换到新用户来测试环境是否配置成功:

Bash

su - username

输入密码后,使用pwd查看是否在/home/username目录下,使用ls -a查看是否有独立的配置文件(如.profile)。


您是想为这个账号配置特定的软件运行环境(如独立的 Python 或 Node.js 环境),还是只需要基础的系统账号隔离?

1. 创建新用户

基本创建用户

# 创建新用户sudouseraddusername# 创建用户并自动创建家目录sudouseradd-m username# 创建用户并指定家目录sudouseradd-m -d /home/customdir username# 创建用户并指定shellsudouseradd-m -s /bin/bash username# 创建用户并添加注释sudouseradd-m -c"User Full Name"username

创建用户并设置密码

# 创建用户后设置密码sudopasswdusername# 一次性创建用户并设置密码sudouseradd-m username&&sudopasswdusername

创建系统用户(用于运行服务)

# 创建无登录权限的系统用户sudouseradd-r -s /usr/sbin/nologin servicename

2. 删除用户

# 仅删除用户账号sudouserdelusername# 删除用户及其家目录sudouserdel-r username# 强制删除(即使用户已登录)sudouserdel-f username

3. 修改用户信息

# 修改用户名sudousermod-l newname oldname# 修改用户家目录sudousermod-d /new/home/path -m username# 修改用户shellsudousermod-s /bin/zsh username# 锁定用户账号sudousermod-L username# 解锁用户账号sudousermod-U username# 修改用户UIDsudousermod-u1500username# 设置账号过期时间sudousermod-e2024-12-31 username

4. 查看用户信息

# 查看当前登录用户whoami# 查看所有用户cat/etc/passwd# 查看用户详细信息idusername# 查看用户所属组groupsusername# 查看最近登录用户last# 查看当前登录的所有用户whow# 查看用户密码信息sudochage -l username

用户权限管理

1. 文件和目录权限

权限表示方式
rwx rwx rwx │ │ │ │ │ └─── 其他用户权限 │ └─────── 组权限 └─────────── 所有者权限 r = 读权限 (4) w = 写权限 (2) x = 执行权限 (1)
修改文件权限
# 使用符号模式chmodu+x file.sh# 给所有者添加执行权限chmodg-w file.txt# 移除组的写权限chmodo=r file.txt# 设置其他用户只有读权限chmoda+r file.txt# 给所有用户添加读权限# 使用数字模式chmod755file.sh# rwxr-xr-xchmod644file.txt# rw-r--r--chmod600private.key# rw-------chmod777public.txt# rwxrwxrwx(不推荐)# 递归修改目录权限chmod-R755/path/to/directory
修改文件所有者
# 修改文件所有者sudochownusername file.txt# 修改文件所有者和组sudochownusername:groupname file.txt# 递归修改目录所有者sudochown-R username:groupname /path/to/directory# 仅修改组sudochgrpgroupname file.txt

2. sudo权限管理

添加用户到sudo组
# Ubuntu/Debian系统sudousermod-aGsudousername# CentOS/RHEL系统sudousermod-aG wheel username# 验证sudo权限sudo-l -U username
编辑sudoers文件
# 使用visudo安全编辑sudoers(推荐)sudovisudo
sudoers配置示例
# 给用户完全sudo权限usernameALL=(ALL:ALL)ALL# 给用户无需密码的sudo权限usernameALL=(ALL)NOPASSWD: ALL# 限制用户只能执行特定命令usernameALL=(ALL)/usr/bin/apt, /usr/bin/systemctl# 给组sudo权限%groupnameALL=(ALL:ALL)ALL# 允许用户以特定用户身份运行命令usernameALL=(root)/usr/bin/service

3. 特殊权限

# SUID (Set User ID) - 以文件所有者身份执行chmodu+sfilechmod4755file# SGID (Set Group ID) - 以文件所属组身份执行chmodg+sfilechmod2755file# Sticky Bit - 只有所有者可以删除文件(常用于/tmp)chmod+t directorychmod1777directory

组管理

1. 创建和删除组

# 创建新组sudogroupaddgroupname# 创建指定GID的组sudogroupadd-g1500groupname# 删除组sudogroupdelgroupname

2. 管理组成员

# 添加用户到组sudousermod-aG groupname username# 添加用户到多个组sudousermod-aG group1,group2,group3 username# 设置用户的主组sudousermod-g primarygroup username# 从组中移除用户(需要重新设置用户的组列表)sudogpasswd -d username groupname# 查看组成员getent group groupname

3. 查看组信息

# 查看所有组cat/etc/group# 查看当前用户所属组groups# 查看指定用户所属组groupsusername# 查看组详细信息getent group groupname

系统管控

1. 进程管理

# 查看进程psaux# 查看所有进程ps-ef# 查看所有进程(另一种格式)pstree# 树状显示进程top# 实时查看进程htop# 增强版top(需安装)# 查找特定进程psaux|grepprocessname pgrep processname# 终止进程killPID# 正常终止kill-9 PID# 强制终止killallprocessname# 终止所有同名进程pkillprocessname# 通过名称终止进程# 后台运行进程command&# 后台运行nohupcommand&# 后台运行且不受终端关闭影响# 查看后台任务jobsfg%1# 将后台任务调到前台bg%1# 继续运行后台任务

2. 服务管理(systemd)

# 启动服务sudosystemctl start servicename# 停止服务sudosystemctl stop servicename# 重启服务sudosystemctl restart servicename# 重新加载配置sudosystemctl reload servicename# 查看服务状态sudosystemctl status servicename# 开机自启sudosystemctlenableservicename# 禁用开机自启sudosystemctl disable servicename# 查看所有服务systemctl list-units --type=service# 查看启动失败的服务systemctl --failed

3. 系统监控

# CPU和内存监控top# 实时监控htop# 增强版监控vmstat1# 每秒更新系统状态# 内存使用free-h# 查看内存使用cat/proc/meminfo# 详细内存信息# 磁盘使用df-h# 查看磁盘空间du-sh /path# 查看目录大小du-h --max-depth=1# 查看当前目录各子目录大小# 网络监控netstat-tuln# 查看监听端口ss -tuln# 现代版netstatiftop# 实时网络流量(需安装)nethogs# 按进程显示网络使用(需安装)# 系统负载uptime# 系统运行时间和负载w# 查看登录用户和负载

4. 日志管理

# 查看系统日志sudojournalctl# 查看所有日志sudojournalctl -f# 实时查看日志sudojournalctl -u servicename# 查看特定服务日志sudojournalctl --since"2024-01-01"# 查看指定日期后的日志sudojournalctl --since today# 查看今天的日志# 传统日志文件tail-f /var/log/syslog# 实时查看系统日志tail-f /var/log/auth.log# 实时查看认证日志less/var/log/messages# 查看消息日志# 清理日志sudojournalctl --vacuum-time=7d# 清理7天前的日志sudojournalctl --vacuum-size=1G# 保留最多1G日志

5. 防火墙管理

UFW(Ubuntu/Debian)
# 启用防火墙sudoufwenable# 禁用防火墙sudoufw disable# 查看状态sudoufw status verbose# 允许端口sudoufw allow22/tcpsudoufw allow80/tcpsudoufw allow443/tcp# 拒绝端口sudoufw deny23/tcp# 允许特定IP访问sudoufw allow from192.168.1.100# 删除规则sudoufw delete allow80/tcp# 重置防火墙sudoufw reset
firewalld(CentOS/RHEL)
# 启动防火墙sudosystemctl start firewalld# 查看状态sudofirewall-cmd --state# 允许服务sudofirewall-cmd --permanent --add-service=httpsudofirewall-cmd --permanent --add-service=https# 允许端口sudofirewall-cmd --permanent --add-port=8080/tcp# 重新加载配置sudofirewall-cmd --reload# 查看规则sudofirewall-cmd --list-all

6. 定时任务(Cron)

# 编辑当前用户的crontabcrontab-e# 查看当前用户的crontabcrontab-l# 删除当前用户的crontabcrontab-r# 编辑其他用户的crontab(需要root权限)sudocrontab-u username -e
Crontab格式
# 分 时 日 月 周 命令 # * * * * * command # 示例: 0 2 * * * /path/to/backup.sh # 每天凌晨2点执行 */5 * * * * /path/to/script.sh # 每5分钟执行 0 0 * * 0 /path/to/weekly.sh # 每周日午夜执行 0 9-17 * * 1-5 /path/to/work.sh # 工作日9点到17点每小时执行

7. 系统更新和维护

Ubuntu/Debian
# 更新软件包列表sudoaptupdate# 升级已安装的软件包sudoaptupgrade# 升级系统(包括内核)sudoaptfull-upgrade# 自动清理不需要的包sudoaptautoremove# 清理下载的软件包缓存sudoaptclean
CentOS/RHEL
# 更新软件包sudoyum update# 或使用dnf(新版本)sudodnf update# 清理缓存sudoyum clean all

8. 系统资源限制

# 查看当前限制ulimit-a# 设置最大打开文件数ulimit-n4096# 编辑系统限制文件sudovim/etc/security/limits.conf# 限制配置示例:# username soft nofile 4096# username hard nofile 8192# username soft nproc 2048# username hard nproc 4096

安全最佳实践

1. 用户安全

# 强制用户下次登录时更改密码sudopasswd-e username# 设置密码策略sudovim/etc/login.defs# 设置密码最小长度(在/etc/security/pwquality.conf)sudovim/etc/security/pwquality.conf# minlen = 12# dcredit = -1 # 至少一个数字# ucredit = -1 # 至少一个大写字母# lcredit = -1 # 至少一个小写字母# ocredit = -1 # 至少一个特殊字符# 禁止root直接SSH登录sudovim/etc/ssh/sshd_config# PermitRootLogin nosudosystemctl restart sshd

2. SSH安全

# 修改SSH配置sudovim/etc/ssh/sshd_config# 推荐配置:# Port 2222 # 修改默认端口# PermitRootLogin no # 禁止root登录# PasswordAuthentication no # 禁用密码登录(使用密钥)# PubkeyAuthentication yes # 启用密钥认证# MaxAuthTries 3 # 最大认证尝试次数# ClientAliveInterval 300 # 客户端保活间隔# ClientAliveCountMax 2 # 最大保活次数# 重启SSH服务sudosystemctl restart sshd# 设置SSH密钥认证ssh-keygen -t rsa -b4096ssh-copy-id -i ~/.ssh/id_rsa.pub username@server

3. 系统审计

# 安装auditdsudoaptinstallauditd# Ubuntu/Debiansudoyuminstallaudit# CentOS/RHEL# 启动审计服务sudosystemctl start auditdsudosystemctlenableauditd# 查看审计日志sudoausearch -m USER_LOGINsudoausearch -ua username

4. 常用安全检查

# 检查是否有空密码账户sudoawk-F:'($2 == "") {print $1}'/etc/shadow# 查看最近登录失败的记录sudolastb# 检查可疑进程psaux|grep-E'bash|sh|python|perl'# 检查监听端口sudonetstat-tulpn# 检查计划任务sudocrontab-l -u rootls-la /etc/cron.*

5. 备份重要文件

# 备份用户信息sudocp/etc/passwd /etc/passwd.baksudocp/etc/shadow /etc/shadow.baksudocp/etc/group /etc/group.bak# 备份sudo配置sudocp/etc/sudoers /etc/sudoers.bak# 创建系统备份脚本#!/bin/bashBACKUP_DIR="/backup/system"DATE=$(date+%Y%m%d)tar-czf$BACKUP_DIR/etc-$DATE.tar.gz /etctar-czf$BACKUP_DIR/home-$DATE.tar.gz /home

快速参考

常用命令速查

功能命令
创建用户sudo useradd -m username
设置密码sudo passwd username
删除用户sudo userdel -r username
添加sudo权限sudo usermod -aG sudo username
修改文件权限chmod 755 file
修改文件所有者sudo chown user:group file
查看进程ps auxtop
启动服务sudo systemctl start service
查看日志sudo journalctl -f
查看磁盘df -h
查看内存free -h
查看端口sudo netstat -tulpn

注意事项

  1. 使用sudo谨慎操作:所有系统级别的操作都需要root权限,请确保理解命令的作用
  2. 备份重要数据:在进行重大系统更改前,请先备份重要配置文件
  3. 测试环境:建议先在测试环境验证命令,再在生产环境执行
  4. 日志记录:重要操作建议记录日志,便于问题追溯
  5. 权限最小化:遵循最小权限原则,不要随意给予过高权限
  6. 定期更新:保持系统和软件包及时更新,修补安全漏洞
  7. 密码策略:使用强密码,定期更换,不要重复使用
  8. 监控审计:定期检查系统日志和用户活动
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/16 1:23:18

POWER BI效率秘籍:10个快捷键+5个模板省时技巧

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 构建一个POWER BI效率工具包,包含:1) 常用快捷键速查表 2) 可复用的可视化模板(柱状图、折线图、仪表盘等) 3) 标准DAX公式库 4) 数据清洗快捷操作指南。要…

作者头像 李华
网站建设 2026/2/20 23:51:39

AutoGLM-Phone-9B技术揭秘:移动端推理加速技巧

AutoGLM-Phone-9B技术揭秘:移动端推理加速技巧 随着大模型在消费级设备上的部署需求日益增长,如何在资源受限的移动终端实现高效、低延迟的多模态推理成为关键技术挑战。AutoGLM-Phone-9B 的推出正是针对这一痛点,旨在将强大的语言理解与生成…

作者头像 李华
网站建设 2026/2/20 7:30:48

MediaPipe vs 传统CV:开发效率提升10倍的秘密

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 实现一个面部特征点检测功能,分别使用传统OpenCV方法和MediaPipe框架进行开发,比较两者的开发效率和运行性能。要求:1. 使用OpenCV实现基础的面…

作者头像 李华
网站建设 2026/2/19 22:40:52

Qwen3-VL多模态竞赛准备:云端GPU弹性备战,省时省力

Qwen3-VL多模态竞赛准备:云端GPU弹性备战,省时省力 1. 为什么选择云端GPU备战AI竞赛? 参加AI竞赛时,最让人头疼的就是硬件资源问题。特别是像Qwen3-VL这样的多模态大模型,训练阶段对GPU算力要求很高,但团…

作者头像 李华
网站建设 2026/2/17 21:14:29

AI如何帮你轻松管理SQLite数据库

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个基于SQLite的AI辅助数据库管理工具,能够根据自然语言描述自动生成SQL查询语句,优化数据库结构,并提供性能分析建议。工具应包含以下功能…

作者头像 李华