当前位置: 首页 > news >正文

Ubuntu 新建用户

在 Ubuntu 22.04 中创建新用户并赋予 root 权限的步骤如下,综合多篇文档推荐的安全方法:


一、创建新用户

  1. 使用 adduser 命令创建用户

    sudo adduser your_username
    
    • 系统会提示设置密码及填写用户信息(全名、电话等,可直接回车跳过)。
  2. 验证用户是否创建成功

    getent passwd your_username
    

二、赋予用户 Root 权限(推荐方法)

方法1:将用户添加到 sudo

这是 Ubuntu 官方推荐的安全方式,用户可通过 sudo 临时获取 root 权限:

sudo usermod -aG sudo your_username
  • -aG 表示将用户追加到指定组(sudo 组),不覆盖原有组。
  • 修改后用户需重新登录生效。
方法2:直接编辑 /etc/sudoers 文件

若需更细粒度控制权限,可手动添加配置:

  1. 使用 visudo 安全编辑文件:
    sudo visudo
    
  2. 在文件中找到 root ALL=(ALL:ALL) ALL,下方添加一行:
    your_username ALL=(ALL:ALL) ALL
    
    保存退出后权限立即生效。

三、验证权限是否生效

  1. 切换到新用户:
    su - your_username
    
  2. 运行需要 root 权限的命令(如查看 /root 目录):
    sudo ls -la /root
    
    若成功执行,则 root 权限已生效。

注意事项

  1. 安全性建议

    • 避免直接修改用户 UID 为 0(如 test1:x:0:1001),虽然这会直接赋予 root 权限,但可能导致 SSH 登录异常且存在安全风险。
    • 建议使用 sudo 组方式,遵循最小权限原则。
  2. 其他操作

    • 删除用户:sudo deluser your_username
    • 禁用用户:sudo usermod -s /sbin/nologin your_username

以上方法结合了 Ubuntu 官方推荐流程和实际安全性考量。如需更详细配置(如限制特定命令),可参考 /etc/sudoers 文件的注释说明。### Linux 系统异常触发后自动重启配置指南


一、内核级自动重启配置

适用于内核崩溃(Kernel Panic)、硬件驱动故障等场景,通过 SysRq 和 Watchdog 实现快速恢复。

1. SysRq 强制重启
  • 功能:通过触发内核崩溃或强制重启,绕过正常关机流程。
  • 配置步骤
    # 启用 SysRq 功能(临时)
    echo 1 > /proc/sys/kernel/sysrq# 永久生效(编辑 sysctl.conf)
    sudo vi /etc/sysctl.conf
    # 添加以下行
    kernel.sysrq = 1
    sudo sysctl -p# 设置内核崩溃后自动重启时间(示例:10秒)
    echo 10 > /proc/sys/kernel/panic
    # 永久配置
    echo "kernel.panic = 10" | sudo tee -a /etc/sysctl.conf
    
  • 触发命令
    echo c > /proc/sysrq-trigger   # 触发内核崩溃并生成转储(需 kdump)
    echo b > /proc/sysrq-trigger   # 强制重启(跳过数据同步)
    
2. Watchdog 硬件/软件监控
  • 功能:通过定期心跳检测,超时无响应则自动重启。
  • 软件 Watchdog 配置
    # 加载模块
    sudo modprobe softdog# 设置超时时间(示例:30秒)
    echo 30 > /proc/sys/kernel/watchdog_thresh# 启动服务
    sudo systemctl start watchdog
    
  • 硬件 Watchdog:需主板支持,通过 ipmitool 控制:
    ipmitool chassis power reset  # 硬件级强制重启
    

二、服务/进程级自动重启

适用于用户态服务崩溃、进程挂起等场景。

1. systemd 服务管理
  • 配置示例/etc/systemd/service/myapp.service):
    [Service]
    ExecStart=/usr/bin/myapp
    Restart=always     # 任何退出都重启
    RestartSec=5s      # 间隔 5 秒重启
    [Install]
    WantedBy=multi-user.target
    
  • 生效命令
    sudo systemctl daemon-reload
    sudo systemctl enable myapp --now
    
2. Supervisor 进程监控
  • 配置示例/etc/supervisor/conf.d/myapp.conf):
    [program:myapp]
    command=/usr/bin/myapp
    autostart=true
    autorestart=true
    startretries=3
    
  • 生效命令
    sudo supervisorctl update && sudo supervisorctl start myapp
    

三、内核崩溃转储与自动重启(kdump)

用于生成崩溃转储文件(vmcore)后自动重启,便于后续调试。

1. 安装与配置 kdump
  • 安装工具
    # Debian/Ubuntu
    sudo apt install linux-crashdump kexec-tools
    # CentOS/RHEL
    sudo yum install kexec-tools
    
  • 预留内存
    编辑 /etc/default/grub,添加 crashkernel=512M
    GRUB_CMDLINE_LINUX="... crashkernel=512M"
    sudo update-grub && sudo reboot
    
  • 配置 kdump/etc/kdump.conf):
    path /var/crash
    core_collector makedumpfile -l --message-level 1 -d 31
    
2. 验证与触发
  • 检查服务状态
    sudo systemctl status kdump
    
  • 手动触发转储并重启
    echo c > /proc/sysrq-trigger  # 生成 vmcore 后自动重启
    

四、网络异常自动重启

适用于网络链路中断导致服务不可用。

1. 网络检测脚本
  • 脚本示例/usr/local/bin/network_check.sh):
    #!/bin/bash
    if ! ping -c 3 8.8.8.8 &> /dev/null; thensudo systemctl reboot
    fi
    
  • 定时任务crontab -e):
    */5 * * * * /usr/local/bin/network_check.sh
    

五、验证与调试

1. 配置验证
  • 检查内核参数
    cat /proc/sys/kernel/sysrq      # 应为 1
    cat /proc/sys/kernel/panic      # 应为设定的重启时间(如 10)
    
  • 查看 kdump 状态
    sudo kdump-config status
    
2. 日志分析
  • 内核日志
    dmesg | grep "Kernel panic"
    journalctl -k --since "1 hour ago"
    
  • 转储文件分析
    crash /usr/lib/debug/boot/vmlinux-$(uname -r) /var/crash/xxx/vmcore
    

六、注意事项

  1. 数据安全

    • 强制重启可能导致数据丢失,优先使用 sync 同步数据。
    • 生产环境建议结合监控系统(如 Zabbix)告警后再操作。
  2. 硬件兼容性

    • 确保硬件支持 Watchdog 或 IPMI。
  3. 测试环境验证

    • 在非生产环境中模拟崩溃(如 kill -9echo 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

通过上述配置,可覆盖内核崩溃、服务异常、网络中断等多种场景下的自动重启需求,平衡系统稳定性与恢复效率。

相关文章:

  • Golang 内存模型小结
  • Docker实战
  • Linux下的Socket编程
  • 小白的进阶之路系列之三----人工智能从初步到精通pytorch计算机视觉详解上
  • React+Taro 微信小程序做一个页面,背景图需贴手机屏幕最上边覆盖展示
  • 桥接智能制造:PROFINET与Devicenet混合架构赋能汽车擦净机器人升级
  • java每日精进 5.22【多数据源(读写分离)、事务】
  • 觉醒三境:在敦煌的风沙中寻找生命的纹路
  • 火山引擎火山云带宽价格
  • 【大模型面试每日一题】Day 26:从伦理角度,大模型可能存在哪些潜在风险?技术上如何实现内容安全控制(如RLHF、红队测试)?
  • Ubuntu-多显示器黑屏问题及nvidia显卡驱动安装
  • 当物联网“芯”闯入纳米世界:ESP32-S3驱动的原子力显微镜能走多远?
  • 自制操作系统day7(获取按键编码、FIFO缓冲区、鼠标、键盘控制器(Keyboard Controller, KBC)、PS/2协议)
  • 鸿蒙Flutter实战:23-混合开发详解-3-源码模式引入
  • FreeBSD14.2因为爆内存而导致Xfce4视窗被卡,桌面变黑色,只能看到鼠标在窗体中心,鼠标无反应,键盘无反应
  • 自制操作系统day8 (鼠标数据取得、通往32位模式之路、A20GATE、切换到保护模式、控制寄存器cr0-cr4以及cr8、ALIGNB)
  • 创建信任所有证书的HttpClient:Java 实现 HTTPS 接口调用,等效于curl -k
  • 【Java面试】从Spring Boot到Kafka:技术栈与业务场景全面剖析
  • 养生新策:五维开启健康生活
  • 青少年编程与数学 02-020 C#程序设计基础 01课题、C#编程概要
  • 导航网站cms/公众号引流推广平台
  • 什么网站做新闻更好/seo自然排名
  • 建设网站要先给钱才能做/今日微博热搜榜前十名
  • wordpress网站模板/直播回放老卡怎么回事
  • 网站建设免费模版/企业邮箱域名
  • 网站建立的连接不安全/应用商店搜索优化