尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Linux系统管理核心技能:用户权限与进程管理

Linux系统管理核心技能:用户权限与进程管理 1. Linux系统管理入门指南作为一名Linux系统管理员第四天的学习内容往往是最关键的转折点。在这个阶段我们已经掌握了基础命令和文件操作开始真正进入系统管理的核心领域。今天我们就来深入探讨Linux系统管理员在第四天应该掌握的关键技能。1.1 用户与权限管理Linux系统的多用户特性决定了用户和权限管理是系统管理员的核心工作之一。让我们从最基础的/etc/passwd文件说起root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin每行记录包含7个字段分别表示用户名、密码占位符(x表示密码存储在/etc/shadow)、UID、GID、描述信息、家目录和登录shell。理解这个文件结构是管理用户的基础。创建新用户的正确姿势sudo useradd -m -s /bin/bash -G sudo,developers newuser这条命令创建了一个名为newuser的用户自动创建家目录(-m)设置登录shell为bash并加入sudo和developers组。权限管理方面chmod命令的数字表示法需要特别注意4 读(r)2 写(w)1 执行(x)所以chmod 755表示所有者rwx (4217)所属组r-x (4015)其他用户r-x (4015)重要提示永远不要使用777权限这会给系统带来严重的安全隐患。应该遵循最小权限原则只授予必要的权限。1.2 进程管理与服务控制理解Linux进程管理是系统维护的关键。ps aux命令输出的几个关键列USER进程所有者PID进程ID%CPUCPU占用率%MEM内存占用率COMMAND执行的命令对于长期运行的服务我们应该使用systemd来管理sudo systemctl start nginx # 启动服务 sudo systemctl enable nginx # 设置开机自启 sudo systemctl status nginx # 查看服务状态当遇到进程占用资源过高时正确的处理流程使用top或htop找出问题进程分析进程行为(strace -p PID)必要时优雅终止进程(kill -15 PID)最后手段才使用kill -91.3 磁盘与文件系统管理df -h命令可以查看磁盘使用情况但更深入的了解需要掌握以下概念物理卷(PV)卷组(VG)逻辑卷(LV)创建LVM的典型流程pvcreate /dev/sdb1 # 创建物理卷 vgcreate vg_data /dev/sdb1 # 创建卷组 lvcreate -L 100G -n lv_home vg_data # 创建逻辑卷 mkfs.ext4 /dev/vg_data/lv_home # 格式化 mount /dev/vg_data/lv_home /home # 挂载经验分享生产环境中建议使用xfs文件系统而非ext4特别是对于大文件和高并发场景。xfs在处理大文件和并行IO时表现更优。1.4 网络配置与防火墙现代Linux发行版通常使用NetworkManager管理网络但传统方法仍然值得了解# 临时设置IP sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0 # 永久配置 sudo vi /etc/network/interfaces防火墙配置是系统安全的重要环节。UFW(Uncomplicated Firewall)简化了iptables的使用sudo ufw allow 22/tcp # 允许SSH sudo ufw allow 80/tcp # 允许HTTP sudo ufw enable # 启用防火墙对于更复杂的规则直接使用iptablessudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT sudo iptables -A INPUT -j DROP1.5 日志分析与故障排查系统日志位于/var/log目录几个关键日志文件/var/log/syslog通用系统日志/var/log/auth.log认证相关日志/var/log/kern.log内核日志/var/log/nginx/Nginx日志(如果安装了)使用journalctl查看systemd日志journalctl -u nginx --since 2023-01-01 --until 2023-01-02故障排查的黄金法则检查日志重现问题缩小范围测试修复验证结果1.6 自动化与计划任务cron是Linux中最常用的计划任务工具。编辑当前用户的cron任务crontab -e典型cron表达式# 每天凌晨3点执行备份 0 3 * * * /usr/local/bin/backup.sh # 每5分钟检查一次服务 */5 * * * * /usr/local/bin/check_service.sh对于更复杂的任务编排可以考虑使用Ansible等自动化工具。一个简单的Ansible playbook示例--- - hosts: webservers tasks: - name: Ensure nginx is installed apt: name: nginx state: present - name: Ensure nginx is running service: name: nginx state: started enabled: yes1.7 安全加固基础基本的系统安全措施包括禁用root SSH登录sudo sed -i s/PermitRootLogin yes/PermitRootLogin no/ /etc/ssh/sshd_config sudo systemctl restart sshd配置SSH密钥认证定期更新系统sudo apt update sudo apt upgrade -y安装fail2ban防止暴力破解sudo apt install fail2ban安全提示永远不要在生产服务器上直接使用密码认证。SSH密钥配合双因素认证是最佳实践。1.8 性能监控与优化基本的性能监控命令top/htop实时系统监控vmstat虚拟内存统计iostat磁盘I/O统计netstat网络连接统计安装sysstat包可以获得更详细的性能数据sudo apt install sysstatsar工具可以生成系统活动报告sar -u 1 5 # CPU使用率每秒1次共5次 sar -r 1 5 # 内存使用情况性能优化的基本原则先测量后优化找出真正的瓶颈一次只改变一个变量记录所有变更和结果1.9 软件包管理进阶除了基本的apt-get installdpkg提供了更底层的控制# 查看已安装软件包 dpkg -l | grep nginx # 查看软件包内容 dpkg -L nginx # 安装本地.deb文件 sudo dpkg -i package.deb处理依赖问题sudo apt --fix-broken install创建本地软件仓库sudo apt install dpkg-dev mkdir ~/myrepo cp *.deb ~/myrepo cd ~/myrepo dpkg-scanpackages . /dev/null | gzip -9c Packages.gz然后在sources.list中添加deb file:/home/user/myrepo ./1.10 Shell脚本编程基础一个实用的备份脚本示例#!/bin/bash # 定义变量 BACKUP_DIR/backups DATE$(date %Y%m%d) LOG_FILE/var/log/backup_${DATE}.log # 检查备份目录是否存在 if [ ! -d $BACKUP_DIR ]; then mkdir -p $BACKUP_DIR fi # 执行备份 echo Starting backup at $(date) $LOG_FILE tar -czf ${BACKUP_DIR}/backup_${DATE}.tar.gz /home /etc 2 $LOG_FILE # 检查执行结果 if [ $? -eq 0 ]; then echo Backup completed successfully at $(date) $LOG_FILE else echo Backup failed at $(date) $LOG_FILE exit 1 fi # 删除7天前的备份 find $BACKUP_DIR -name *.tar.gz -mtime 7 -delete脚本编写最佳实践总是添加shebang(#!/bin/bash)使用有意义的变量名添加错误处理记录日志添加注释说明1.11 系统救援与恢复当系统无法启动时可以使用Live CD/USB进行救援。基本步骤从Live介质启动挂载原系统分区mkdir /mnt/rescue mount /dev/sda1 /mnt/rescue mount --bind /dev /mnt/rescue/dev mount --bind /proc /mnt/rescue/proc mount --bind /sys /mnt/rescue/syschroot到原系统chroot /mnt/rescue /bin/bash修复问题(如重装grub)grub-install /dev/sda update-grub1.12 虚拟化与容器基础KVM是Linux内置的虚拟化解决方案。安装步骤sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils sudo adduser $USER libvirt sudo adduser $USER kvm创建虚拟机的简单方法sudo virt-install \ --name ubuntu-vm \ --ram 2048 \ --disk path/var/lib/libvirt/images/ubuntu-vm.qcow2,size20 \ --vcpus 2 \ --os-type linux \ --os-variant ubuntu20.04 \ --network bridgevirbr0 \ --graphics none \ --console pty,target_typeserial \ --location http://archive.ubuntu.com/ubuntu/dists/focal/main/installer-amd64/ \ --extra-args consolettyS0,115200n8 serial对于容器技术Docker是最流行的选择。基本命令docker pull ubuntu:20.04 docker run -it --rm ubuntu:20.04 /bin/bash docker ps -a docker images1.13 内核模块与硬件管理列出已加载的内核模块lsmod加载/卸载模块sudo modprobe module_name sudo rmmod module_name查看硬件信息lspci # PCI设备 lsusb # USB设备 lshw # 详细硬件信息管理内核参数sysctl -a # 查看所有参数 sysctl kernel.hostname # 查看特定参数 sudo sysctl -w kernel.hostnamenewhostname # 临时修改 # 永久修改需要编辑/etc/sysctl.conf1.14 时间同步与日志管理配置NTP时间同步sudo apt install chrony sudo systemctl enable chrony sudo systemctl start chrony chronyc sources # 查看时间源日志轮转配置(/etc/logrotate.conf示例)/var/log/nginx/*.log { daily missingok rotate 14 compress delaycompress notifempty create 0640 www-data adm sharedscripts postrotate systemctl reload nginx endscript }1.15 环境变量与系统路径查看当前环境变量printenv设置永久环境变量# 对当前用户 echo export PATH$PATH:/opt/myapp/bin ~/.bashrc # 对所有用户 echo export JAVA_HOME/usr/lib/jvm/java-11-openjdk-amd64 /etc/environment重要的系统路径/usr/bin用户命令/usr/sbin系统管理命令/usr/local本地安装软件/opt第三方大型软件/etc配置文件/var可变数据(日志等)1.16 文本处理三剑客grep基础用法grep -r error /var/log/ # 递归搜索 grep -i warning file.txt # 忽略大小写 grep -v debug file.txt # 反向匹配sed示例sed s/foo/bar/g file.txt # 替换文本 sed -i.bak /^#/d config.conf # 删除注释行并备份原文件 sed -n 5,10p file.txt # 打印5-10行awk实战awk {print $1} access.log # 打印第一列 awk -F: {print $1, $6} /etc/passwd # 指定分隔符 awk $3 100 {print $0} data.txt # 条件过滤1.17 系统备份策略完整的系统备份方案应考虑全量备份 增量备份异地备份定期验证备份可用性使用rsync进行增量备份rsync -avz --delete /home/ userbackup-server:/backups/home/创建系统镜像sudo dd if/dev/sda of/backups/system.img bs4M statusprogress备份黄金法则3-2-1策略3份备份2种不同介质1份异地备份1.18 多系统引导管理GRUB2是大多数Linux发行版的默认引导加载程序。关键配置文件/etc/default/grub基本配置/etc/grub.d/脚本目录/boot/grub/grub.cfg生成的配置文件(不要直接编辑)更新GRUB配置sudo update-grub修复GRUB引导从Live CD启动挂载原系统分区chroot重新安装GRUBgrub-install /dev/sda update-grub1.19 系统性能基准测试常用的基准测试工具sysbenchCPU、内存、IO测试iperf3网络性能测试fio磁盘IO测试CPU测试示例sysbench cpu --cpu-max-prime20000 run磁盘IO测试fio --namerandom-write --ioenginelibaio --iodepth1 \ --rwrandwrite --bs4k --direct1 --size1G --numjobs1 \ --runtime60 --time_based --end_fsync1网络测试# 服务端 iperf3 -s # 客户端 iperf3 -c server-ip1.20 持续学习资源推荐提升Linux技能的优质资源官方文档man pages、kernel.orgLinux Foundation培训课程Red Hat认证路径(RHCSA→RHCE→RHCA)Linux Professional Institute认证(LPIC)社区资源Server Fault、Unix Linux Stack Exchange实践建议搭建家庭实验室参与开源项目定期挑战新任务建立知识管理系统学习Linux就像学习一门乐器需要持续练习。我个人的经验是每天解决一个实际问题坚持三个月后技能会有质的飞跃。遇到问题时先尝试自己解决查阅man page和官方文档这比直接搜索答案能学到更多。
返回列表