Ubuntu 新建用户
在 Ubuntu 22.04 中创建新用户并赋予 root 权限的步骤如下,综合多篇文档推荐的安全方法:
一、创建新用户
- 系统会提示设置密码及填写用户信息(全名、电话等,可直接回车跳过)。
验证用户是否创建成功
getent passwd your_username 使用 adduser 命令创建用户
sudo adduser your_username 二、赋予用户 Root 权限(推荐方法)
方法1:将用户添加到 sudo 组
这是 Ubuntu 官方推荐的安全方式,用户可通过 sudo 临时获取 root 权限:
sudousermod-aGsudo your_username -aG表示将用户追加到指定组(sudo组),不覆盖原有组。- 修改后用户需重新登录生效。
方法2:直接编辑 /etc/sudoers 文件
若需更细粒度控制权限,可手动添加配置:
在文件中找到 root ALL=(ALL:ALL) ALL,下方添加一行:
your_username ALL=(ALL:ALL) ALL 保存退出后权限立即生效。
使用 visudo 安全编辑文件:
sudo visudo 三、验证权限是否生效
运行需要 root 权限的命令(如查看 /root 目录):
sudols-la /root 若成功执行,则 root 权限已生效。
切换到新用户:
su - your_username 注意事项
- 安全性建议
- 避免直接修改用户 UID 为 0(如
test1:x:0:1001),虽然这会直接赋予 root 权限,但可能导致 SSH 登录异常且存在安全风险。 - 建议使用
sudo组方式,遵循最小权限原则。
- 避免直接修改用户 UID 为 0(如
- 其他操作
- 删除用户:
sudo deluser your_username - 禁用用户:
sudo usermod -s /sbin/nologin your_username
- 删除用户:
以上方法结合了 Ubuntu 官方推荐流程和实际安全性考量。如需更详细配置(如限制特定命令),可参考 /etc/sudoers 文件的注释说明。### Linux 系统异常触发后自动重启配置指南
一、内核级自动重启配置
适用于内核崩溃(Kernel Panic)、硬件驱动故障等场景,通过 SysRq 和 Watchdog 实现快速恢复。
1. SysRq 强制重启
- 功能:通过触发内核崩溃或强制重启,绕过正常关机流程。
触发命令:
echo c > /proc/sysrq-trigger # 触发内核崩溃并生成转储(需 kdump)echo b > /proc/sysrq-trigger # 强制重启(跳过数据同步)配置步骤:
# 启用 SysRq 功能(临时)echo1> /proc/sys/kernel/sysrq # 永久生效(编辑 sysctl.conf)sudovi /etc/sysctl.conf # 添加以下行 kernel.sysrq =1sudosysctl-p# 设置内核崩溃后自动重启时间(示例:10秒)echo10> /proc/sys/kernel/panic # 永久配置echo"kernel.panic = 10"|sudotee-a /etc/sysctl.conf 2. Watchdog 硬件/软件监控
- 功能:通过定期心跳检测,超时无响应则自动重启。
硬件 Watchdog:需主板支持,通过 ipmitool 控制:
ipmitool chassis power reset # 硬件级强制重启软件 Watchdog 配置:
# 加载模块sudo modprobe softdog # 设置超时时间(示例:30秒)echo30> /proc/sys/kernel/watchdog_thresh # 启动服务sudo systemctl start watchdog 二、服务/进程级自动重启
适用于用户态服务崩溃、进程挂起等场景。
1. systemd 服务管理
生效命令:
sudo systemctl daemon-reload sudo systemctl enable myapp --now配置示例(/etc/systemd/service/myapp.service):
[Service] ExecStart=/usr/bin/myapp Restart=always # 任何退出都重启 RestartSec=5s # 间隔 5 秒重启 [Install] WantedBy=multi-user.target 2. Supervisor 进程监控
生效命令:
sudo supervisorctl update &&sudo supervisorctl start myapp 配置示例(/etc/supervisor/conf.d/myapp.conf):
[program:myapp] command=/usr/bin/myapp autostart=true autorestart=true startretries=3 三、内核崩溃转储与自动重启(kdump)
用于生成崩溃转储文件(vmcore)后自动重启,便于后续调试。
1. 安装与配置 kdump
配置 kdump(/etc/kdump.conf):
path /var/crash core_collector makedumpfile -l --message-level 1-d31预留内存:
编辑 /etc/default/grub,添加 crashkernel=512M:
GRUB_CMDLINE_LINUX="... crashkernel=512M"sudoupdate-grub&&sudoreboot安装工具:
# Debian/Ubuntusudoaptinstall linux-crashdump kexec-tools # CentOS/RHELsudo yum install kexec-tools 2. 验证与触发
手动触发转储并重启:
echo c > /proc/sysrq-trigger # 生成 vmcore 后自动重启检查服务状态:
sudo systemctl status kdump 四、网络异常自动重启
适用于网络链路中断导致服务不可用。
1. 网络检测脚本
定时任务(crontab -e):
*/5 * * * * /usr/local/bin/network_check.sh 脚本示例(/usr/local/bin/network_check.sh):
#!/bin/bashif!ping-c38.8.8.8 &> /dev/null;thensudo systemctl rebootfi五、验证与调试
1. 配置验证
查看 kdump 状态:
sudo kdump-config status 检查内核参数:
cat /proc/sys/kernel/sysrq # 应为 1cat /proc/sys/kernel/panic # 应为设定的重启时间(如 10)2. 日志分析
转储文件分析:
crash /usr/lib/debug/boot/vmlinux-$(uname-r) /var/crash/xxx/vmcore 内核日志:
dmesg|grep"Kernel panic" journalctl -k--since"1 hour ago"六、注意事项
- 数据安全:
- 强制重启可能导致数据丢失,优先使用
sync同步数据。 - 生产环境建议结合监控系统(如 Zabbix)告警后再操作。
- 强制重启可能导致数据丢失,优先使用
- 硬件兼容性:
- 确保硬件支持 Watchdog 或 IPMI。
- 测试环境验证:
- 在非生产环境中模拟崩溃(如
kill -9或echo c)验证流程。
- 在非生产环境中模拟崩溃(如
附录:命令速查表
| 场景 | 命令/配置 |
|---|---|
| 强制重启 | echo b > /proc/sysrq-trigger |
| 生成崩溃转储 | echo c > /proc/sysrq-trigger(需配置 kdump) |
| 服务自动重启 | systemctl edit myapp → 添加 Restart=always |
| 网络检测重启 | crontab -e → 添加 */5 * * * * /path/to/network_check.sh |
通过上述配置,可覆盖内核崩溃、服务异常、网络中断等多种场景下的自动重启需求,平衡系统稳定性与恢复效率。