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

linux命令-用户与用户组

在 Linux 系统中,用户和用户组管理是系统管理的基础任务之一。以下是围绕用户和用户组管理的常用命令,涵盖创建、修改、删除、查询等操作,并附上详细说明和示例。


一、用户管理命令

1. 创建用户
  • useradd
    用于创建新用户。

    sudo useradd username
    
    • 常用选项
      • -m:自动创建用户的家目录(如 /home/username)。
      • -s /bin/bash:指定用户的默认 shell。
      • -G group1,group2:将用户添加到附加组。
    • 示例
      sudo useradd -m -s /bin/bash -G developers,admins alice
      
  • adduser
    交互式创建用户(某些发行版如 Ubuntu 提供,功能更友好)。

    sudo adduser username
    
2. 修改用户属性
  • usermod
    修改用户属性。
    sudo usermod [选项] username
    
    • 常用选项
      • -l newname:修改用户名。
      • -d /new/home:修改家目录。
      • -s /bin/zsh:修改默认 shell。
      • -aG group:将用户添加到附加组(-a 表示追加,避免覆盖原有组)。
    • 示例
      sudo usermod -aG sudo alice  # 将用户 alice 添加到 sudo 组
      
3. 删除用户
  • userdel
    删除用户。
    sudo userdel username
    
    • 常用选项
      • -r:同时删除用户的家目录和邮件池。
    • 示例
      sudo userdel -r alice  # 删除用户 alice 及其家目录
      
4. 查询用户信息
  • id
    显示用户和用户组信息。

    id username
    
    • 示例
      id alice  # 显示用户 alice 的 UID、GID 和所属组
      
  • finger
    显示用户详细信息(需安装 finger 包)。

    finger username
    
  • getent passwd
    /etc/passwd 或其他数据库中查询用户信息。

    getent passwd username
    
5. 修改用户密码
  • passwd
    修改用户密码。
    sudo passwd username  # 修改其他用户的密码
    passwd               # 修改当前用户的密码
    

二、用户组管理命令

1. 创建用户组
  • groupadd
    创建新用户组。
    sudo groupadd groupname
    
    • 示例
      sudo groupadd developers
      
2. 修改用户组属性
  • groupmod
    修改用户组属性。
    sudo groupmod -n newname oldname  # 修改用户组名
    
3. 删除用户组
  • groupdel
    删除用户组。
    sudo groupdel groupname
    
    • 注意:不能删除有用户的主组的用户组。
4. 查询用户组信息
  • getent group
    显示用户组信息。
    getent group groupname
    
    • 示例
      getent group developers  # 显示用户组 developers 的 GID 和成员
      
5. 管理用户组成员
  • gpasswd
    管理用户组成员。

    sudo gpasswd -a username groupname  # 将用户添加到用户组
    sudo gpasswd -d username groupname  # 将用户从用户组中移除
    
    • 示例
      sudo gpasswd -a alice developers  # 将用户 alice 添加到 developers 组
      
  • usermod
    也可以用于管理用户组成员(如前文所述)。


三、其他常用命令

1. 切换用户
  • su
    切换用户身份。
    su - username  # 切换到用户 username 并加载其环境
    su username    # 切换到用户 username 但不加载环境
    
2. 查看当前登录用户
  • who
    显示当前登录的用户。

    who
    
  • w
    显示当前登录的用户及其正在执行的命令。

    w
    
3. 查看用户登录历史
  • last
    显示用户登录历史。
    last
    

四、用户和用户组文件

  • /etc/passwd
    存储用户账户信息(用户名、UID、GID、家目录、默认 shell 等)。

    • 示例
      alice:x:1001:1001:Alice,,,:/home/alice:/bin/bash
      
  • /etc/shadow
    存储用户密码哈希值(加密后)。

  • /etc/group
    存储用户组信息(组名、GID、组成员列表)。

    • 示例
      developers:x:1002:alice,bob
      

五、示例场景

  1. 创建用户并加入用户组

    sudo useradd -m -s /bin/bash alice
    sudo groupadd developers
    sudo usermod -aG developers alice
    
  2. 修改用户密码

    sudo passwd alice
    
  3. 删除用户及其家目录

    sudo userdel -r alice
    
  4. 查看用户所属组

    groups alice
    

六、注意事项

  1. 权限要求:大多数用户管理命令需要 root 权限,通常通过 sudo 执行。
  2. UID 和 GID:UID 和 GID 是用户的唯一标识符,通常从 1000 开始分配给普通用户。
  3. 主组与附加组:用户的主组在 /etc/passwd 中定义,附加组通过 /etc/group 管理。
  4. 安全建议:避免使用默认的 root 用户进行日常操作,优先使用 sudo 授权。

通过以上命令和文件,您可以全面管理 Linux 系统中的用户和用户组,确保系统的安全性和可维护性。

http://www.xdnf.cn/news/13980.html

相关文章:

  • 什么是redis
  • 【k8s】阿里云ACK服务中GPU实例部署问题
  • QMainWindow、QDialog 和 QWidget区别
  • ubuntu 无法访问位置 error mounting 解决办法 双系统
  • 腐烂之息-(Breath of Decay VR ) 硬核VR游戏
  • OpenBayes 一周速览丨对标GPT-4o! BAGEL统一处理多模态数据理解和生成任务; 专为软件工程任务设计, Devstral自主处理复杂工程问题
  • 印度客机坠毁致波音美股盘前直线下跌​
  • Linux内核网络协议注册与初始化:从proto_register到tcp_v4_init_sock的深度解析
  • 后端开发:计算机网络、数据库常识
  • 戴尔 17G 服务器 E610 OCP千兆网卡驱动安装
  • 【 新能源汽车OBD网关全解析:原理、方案、测试与趋势】
  • 【车机显示仪表】软硬件详细方案
  • docker compose部署kafka
  • Snap宣布2026年推出AR眼镜
  • 【Erdas实验教程】019:遥感图像空间增强( 纹理分析)
  • 开源组件hive调优
  • Android 12.0 第三方应用左右两侧未全屏有黑边问题解决
  • 手机IP地址更换的影响与方法
  • 分享| 低代码建模工具-大数据挖掘建模平台白皮书
  • 中国老年健康调查(CLHLS)数据挖掘教程(1)--CLHLS简介和数据下载
  • C++11可变参数模板从入门到精通
  • 【报错解决】Java 连接https报错「javax.net.ssl.SSLHandshakeException」怎么破?看这篇!
  • Kubernetes安全机制深度解析(一):从身份认证到资源鉴权
  • 京东开放平台获取京东商品详情API接口操作解答
  • opencl的简单介绍以及c++实例
  • echarts中给饼图加圆点
  • 从怀疑到依赖:CodeRider 2.0 如何重塑我的编程日常
  • 关于深度学习网络中的归一化BN
  • 玩转 Databend UDF
  • 巢 湖 流 域