8.系统管理
Linux 用户、群组与系统管理
1. 用户和群组管理
1.1 用户配置文件
/etc/passwd 文件格式
1 | lpic:x:500:500:LPI linux:/home/lpic:/bin/bash |
/etc/shadow 文件
- 存储用户密码哈希值
- 只有root用户可访问
- 包含密码过期时间等安全信息
/etc/group 文件格式
1 | staff:x:500:linux,lpic |
1.2 用户管理命令
useradd - 添加用户
1 | useradd -c "开发人员" -d /home/dev -g staff -G developers -s /bin/bash -m devuser |
常用选项:
-c
:用户备注信息-d
:指定家目录路径-g
:指定主组-G
:指定附加组-s
:指定登录shell-m
:自动创建家目录(从/etc/skel复制模板)
usermod - 修改用户
1 | usermod -c "高级开发" -G managers -s /bin/zsh devuser |
常用选项:
-c
:备注:指定备注-d
:path:home目录-g
:组名/GID:所属主组-G
:组名/GID:其他所属组-s
:path: login shell-L
:锁定用户密码-U
:解锁用户密码
userdel - 删除用户
1 | userdel -r devuser # 删除用户并移除家目录 |
passwd - 密码管理
1 | passwd devuser # 设置密码 |
1.3 群组管理命令
groupadd - 添加组
1 | groupadd developers |
groupmod - 修改组
1 | groupmod -g 1001 -n devgroup developers |
-g
:修改GID-n
:修改组名
groupdel - 删除组
1 | groupdel devgroup |
id - 查看用户信息
1 | id devuser # 显示用户UID、GID和所属组 |
2. 系统时间管理
2.1 date - 系统时间
1 | date 093017002012.30 # 设置为2012年9月30日17:00:30 |
常用格式符号:
%Y
:4位年份%m
:2位月份%d
:2位日期%H
:24小时制小时%M
:分钟%a
:星期缩写
2.2 hwclock - 硬件时钟
1 | hwclock --show # 显示硬件时钟 |
2.3 NTP时间同步
1 | ntpdate time.server.lpic.jp # 手动同步时间 |
NTP配置文件(/etc/ntp.conf
):
1 | driftfile /etc/ntp.drift |
3. 系统日志管理
3.1 syslog 配置
配置文件:/etc/syslog.conf
格式:
1 | facility.priority log_location |
facility(设施)类型:
auth
/authpriv
:认证相关cron
:定时任务daemon
:守护进程kern
:内核消息mail
:邮件系统syslog
:syslog自身local0
-local7
:自定义设施
priority(优先级):
emerg
:紧急情况alert
:需要立即处理crit
:严重错误err
:一般错误warning
:警告notice
:重要通知info
:一般信息debug
:调试信息
输出目标:
- 文件名:如
/var/log/messages
@host
:远程syslog服务器- 用户名:发送到用户终端
*
:所有用户终端
3.2 logger 命令
1 | logger -p syslog.info -t TEST "测试日志消息" |
3.3 常用日志文件
/var/log/secure
:认证日志/var/log/messages
:系统消息/var/log/boot.log
:启动日志
3.4 用户登录信息
1 | who # 显示当前登录用户 |
3.5 日志轮转
配置文件:/etc/logrotate.conf
示例:
1 | weekly |
4. 邮件系统
4.1 邮件组件
- MTA(邮件传输代理):sendmail/postfix/exim
- MDA(邮件投递代理):procmail
- MUA(邮件用户代理):mail/mutt/thunderbird
4.2 启动MTA
1 | service sendmail start |
4.3 mail 命令
1 | mail -s "测试邮件" user@example.com |
4.4 邮件转发
/etc/aliases
1 | root: admin,lpic |
更新别名数据库:
1 | newaliases |
用户.forward文件
1 | /home/user/.forward: |
5. 打印系统
5.1 CUPS打印系统
1 | service cups start # 启动CUPS服务 |
主要配置文件:
/etc/cups/cupsd.conf
:服务配置/etc/cups/printers.conf
:打印机配置/etc/cups/ppd/
:PPD驱动文件
5.2 打印命令
lpr - 打印文件
1 | lpr -P LaserJet -#2 document.pdf |
lpq - 查看打印队列
1 | lpq -P LaserJet |
lprm - 删除打印任务
1 | lprm -P LaserJet 123 # 删除指定任务 |
5.3 Web管理界面
6. 定时任务管理
6.1 cron 定时任务系统
crontab 命令
1 | crontab -e # 编辑当前用户的crontab |
crontab 文件格式
1 | * * * * * command_to_execute |
特殊字符:
*
:所有有效值,
:值列表分隔符(如1,3,5)-
:范围(如1-5)/
:步长(如*/2表示每2个单位)
系统cron目录
1 | /etc/crontab # 系统级crontab文件 |
anacron
- 用于在系统停机后执行错过的定时任务
- 配置文件:
/etc/anacrontab
6.2 at 一次性任务
at 命令
1 | at 17:00 tomorrow # 创建定时任务 |
时间格式
1 | HH:MM # 24小时制(如23:00) |
6.3 batch 低负荷执行
1 | batch # 进入交互式输入模式 |
6.4 访问控制
cron 访问控制
- 如存在
/etc/cron.allow
,仅允许文件内用户 - 如无allow文件,检查
/etc/cron.deny
,拒绝文件内用户 - 如两者都不存在,默认行为取决于系统配置
at 访问控制
- 如存在
/etc/at.allow
,仅允许文件内用户 - 如无allow文件,检查
/etc/at.deny
,拒绝文件内用户 - 如两者都不存在,默认只有root可用
7. 本地化与国际化
7.1 本地化变量
变量 | 作用域 |
---|---|
LC_CTYPE |
字符分类和大小写转换 |
LC_COLLATE |
排序和比较规则 |
LC_MESSAGES |
系统消息语言 |
LC_MONETARY |
货币格式 |
LC_NUMERIC |
数字格式 |
LC_TIME |
日期时间格式 |
LC_ALL |
覆盖所有LC_*设置 |
LANG |
默认设置(未被LC_*覆盖时使用) |
7.2 常用locale设置
1 | C/POSIX # 最小locale |
7.3 locale 命令
1 | locale -a # 列出可用locale |
7.4 字符编码
编码 | 描述 |
---|---|
ASCII | 7位英文字符 |
ISO-8859 | 8位扩展ASCII |
UTF-8 | Unicode编码 |
EUC-JP | Linux日文编码 |
Shift_JIS | Windows/Mac日文编码 |
ISO-2022-JP | 邮件用日文编码 |
7.5 iconv 编码转换
1 | iconv -f eucjp -t utf8 input.txt > output.txt # EUC-JP转UTF-8 |
8. 时区设置
8.1 时区文件
1 | /usr/share/zoneinfo/ # 所有时区定义文件 |
8.2 设置时区方法
1 | # 方法1: 复制时区文件 |
8.3 时区配置工具
1 | tzselect # 交互式时区选择 |
9. 打印系统补充
9.1 CUPS Web管理界面
访问:http://localhost:631
9.2 打印命令补充
1 | lpstat -p -d # 显示打印机状态和默认打印机 |
9.3 打印系统日志
1 | /var/log/cups/ # CUPS日志目录 |