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

linux命令-用户管理-7

大纲

操作类型命令示例功能描述关键选项说明
创建用户组groupadd -g 1001 groupname创建指定 GID 的用户组-g 指定组 ID
创建用户useradd -m -s /bin/bash username创建用户并自动生成家目录,指定登录 Shell-m 创建家目录,-s 指定 Shell
设置密码passwd username为用户设置密码(需交互输入)无选项直接修改,-l 锁定用户
修改用户信息usermod -G group1,group2 username将用户添加到附加组-G 指定附加组,-a 保留原组
删除用户userdel -r username删除用户并同时删除家目录及邮箱-r 递归删除用户数据
用户切换su 用户切换用户-
用户权限sudo权限临时提升与精细控制

groupadd

  • 参数

    参数作用
    -g指定组ID(GID),需唯一(除非配合-o
    -r创建系统组,GID默认小于500
    -o允许GID不唯一
    -f若组已存在,强制退出且不报错
  • 示例

    • 创建指定GID的普通组

      [root@localhost ~]# groupadd -g 1000 testgroup 
      # 作用:创建名为testgroup的组,GID设为1000
      
    • 创建系统组

      [root@localhost ~]# groupadd -r sysgroup 
      # 作用:创建系统组sysgroup,GID自动分配且小于500
      
  • 注意事项

    • 组信息存储在/etc/group文件中

      [root@localhost ~]# cat /etc/group
      格式为“组名:密码:GID:成员”
      testgroup:x:1000:
      
    • 避免使用-o随意创建重复GID,可能导致权限冲突。

useradd

  • 参数

    参数功能描述示例用法
    -g指定用户主组(名称或ID)useradd -g developers john
    -d设置用户主目录路径useradd -d /home/john john
    -m自动创建主目录(默认不创建)useradd -m john
    -s指定登录shell(如/bin/bash)useradd -s /bin/bash john
    -r创建系统用户(UID < 1000)useradd -r mysql
    -u手动指定用户UID(需唯一)useradd -u 1005 john
    -G添加用户到附加组(逗号分隔)useradd -G sudo,admins john
  • 示例

    • 创建普通用户并指定主组和家目录

      [root@localhost ~]# useradd -g testgroup -d /home/xiong -m xiong
      说明:创建用户xiong,属组为testgroup,主目录为/home/xiong(-m确保目录自动创建
      
    • 直接创建用户

      # 啥都不指定,会自动创建主目录/home/xiong2,属组xiong2
      [root@localhost ~]# useradd xiong2
      [root@localhost ~]# ls /home/
      xiong  xiong2
      [root@localhost ~]# ls /home/xiong2
      [root@localhost ~]# id xiong
      uid=1000(xiong) gid=1000(testgroup)=1000(testgroup)
      [root@localhost ~]# id xiong2
      uid=1001(xiong2) gid=1001(xiong2)=1001(xiong2)
      [root@localhost ~]# tail -n 1 /etc/group
      xiong2:x:1001:
      
    • 创建系统用户并禁用登录shell

      # 创建个 系统用户xiong3 , 不允许登陆 
      [root@localhost ~]# useradd -r -s /sbin/nologin xiong3
      [root@localhost ~]# id xiong3
      uid=997(xiong3) gid=993(xiong3)=993(xiong3)
      

passwd

  • 参数

    参数功能描述示例权限要求
    无参数修改当前用户密码passwd普通用户
    USERNAME修改指定用户密码passwd linuxtechiroot
    -l锁定用户账户(密码前加!passwd -l linuxtechiroot
    -u解锁用户账户passwd -u linuxtechiroot
    -d删除用户密码(登录无需密码)passwd -d linuxtechiroot
    -e强制用户下次登录改密码passwd -e linuxtechiroot
    -S显示用户密码状态passwd -S linuxtechiroot
    -x DAYS设置密码最长有效期(天)passwd -x 90 linuxtechiroot
    -n DAYS设置密码最短修改间隔(天)passwd -n 7 linuxtechiroot
    -w DAYS设置密码过期前警告天数passwd -w 7 linuxtechiroot
  • 示例

    • 修改密码

      [root@localhost ~]# passwd xiong2    <-- 直接输
      更改用户 xiong2 的密码 。
      新的 密码:
      无效的密码: 密码少于 8 个字符
      重新输入新的 密码:
      passwd:所有的身份验证令牌已经成功更新。
      
    • 单用户非交互修改(passwd + echo)

      [root@localhost ~]# echo "xiong" | passwd --stdin xiong3
      更改用户 xiong3 的密码 。
      passwd:所有的身份验证令牌已经成功更新。
      
    • 多用户批量修改(chpasswd + echo)

      命令:echo -e "user1:pass1\nuser2:pass2" | chpasswd
      (-e启用转义符\n分隔用户)[root@localhost ~]# echo -e "xiong2:passwd1\xiong3:passwd1" | chpasswd 
      

usermod

  • 参数

    参数功能描述示例命令
    -l修改用户名usermod -l newname oldname
    -g设置主要组usermod -g staff user1
    -G添加附加组usermod -G sudo,dev user1
    -d修改家目录usermod -d /newhome user1
    -s更改登录 Shellusermod -s /bin/zsh user1
    -L/-U锁定/解锁账号usermod -L user1 usermod -U user1
    -u修改 UIDusermod -u 1005 user1
  • 示例

    • 修改用户名

      [root@localhost ~]# groupadd -g 1010 user1
      [root@localhost ~]# useradd -g 1010 -u 1010 user1[root@localhost ~]# usermod -l usern1 user1
      [root@localhost ~]# id usern1
      uid=1010(usern1) gid=1010(user1)=1010(user1)# 注意:需确保用户未登录,且手动更新家目录和邮件地址 
      
    • 管理用户组

      • 设主要组:usermod -g developers user1
      • 追加附加组:usermod -aG sudo user1(必须加 -a 避免覆盖原附加组)。

userdel

  • 参数

    参数功能描述注意事项
    -r删除用户、家目录及邮件池避免误删重要文件,建议先备份
    -f强制删除用户(即使用户已登录)可能导致系统状态不一致,谨慎使用
  • 仅删除用户账号

    [root@localhost ~]# userdel xiong2
    [root@localhost ~]# ls /home/
    user1  xiong  xiong2    <--  注意这样删除会保留/home/xiong2和/var/spool/mail/xiong2
    
  • 删除用户及家目录

    [root@localhost ~]# useradd xiogn2
    user1  xiogn2  xiong  xiong2
    [root@localhost ~]# userdel -r xiogn2
    [root@localhost ~]# ls /home/
    user1  xiong  xiong2  <-- /home/xiong2和/var/spool/mail/xiong2都会删除
    
  • 强制删除已登录用户

    [root@localhost ~]#  sudo userdel -f xiong4 
    # 即使 xiong4 当前在线,仍强制删除(但不终止其进程
    

su

  • 参数

    参数功能描述适用场景
    --l切换用户并加载目标用户完整环境(HOME、PATH等),等同于重新登录需完整权限操作时
    -c <命令>以目标用户身份执行单个命令后返回原用户临时执行高权限命令
    -s <shell>指定切换后使用的shell环境(需目标用户shell允许)调试或特殊shell需求
    -p-m保留当前用户环境变量(HOME、PATH等不变)需临时权限但保持当前环境时
  • 示例

    • 普通用户切换至root用户(完整环境)

      [root@localhost ~]# su - root  
      # 输入root密码后切换,工作目录变为/root,环境变量更新为root的配置 
      
    • 以root身份执行单命令

      [root@localhost ~]# su -c "ls -l " root  
      # 执行更新命令后自动返回原用户 
      

sudo

sudo(superuser do)的核心价值在于权限临时提升精细控制,无需暴露root密码即可让普通用户执行特定管理命令。其权限基于/etc/sudoers配置

  • 参数

    选项功能描述示例
    -l列出当前用户可执行的sudo命令sudo -l
    -u指定执行命令的用户(默认root)sudo -u tom whoami
    -i启动root登录shell(执行多个命令)sudo -i
    -v延长sudo会话有效期(无需执行命令)sudo -v
    -k立即终止当前sudo会话sudo -k
  • 示例

    • 完整示例

      # 1. 使用root创建用户
      [root@localhost root]# useradd xiong4# 2. 赋予 xiong4 用户root权限
      [root@localhost root]# vim /etc/sudoers
      root    ALL=(ALL)       ALL
      xiong4 ALL=(ALL)       ALL    <-- xiong4设置为root权限
      # 保存# 3. 切换到 xiong4 用户登陆  
      [xiong4@localhost ~]$ sudo -l
      用户 xiong4 可以在 localhost 上运行以下命令:(ALL) ALL# 4. 每次执行sodu命令都需要输入用户密码才能执行,那怎么可以做到执行sudo不输入密码呢?
      xiong4  ALL=(ALL)       NOPASSWD:/usr/sbin/useradd
      

扩展

用户和组配置文件

  • /etc/passwd:用户及其属性信息(名称、UID、主组ID等)

    如root​ : x:0:0:root:/root:/bin/bash

    passwd文件说明
    login name登录用名(xiong)
    passwd密码 (x)
    UID用户身份编号 (1000)
    GID登录默认所在组编号 (1000)
    GECOS用户全名或注释
    home directory用户主目录 (/home/xiong)
    shell用户默认使用shell (/bin/bash)
  • /etc/group:组及其属性信息

  • /etc/shadow:用户密码及其相关属性

  • /etc/gshadow:组密码及其相关属性

http://www.dtcms.com/a/556844.html

相关文章:

  • 【JavaScript】Pointer Events 与移动端交互
  • 客户评价 网站织梦cms侵权
  • 文件上传下载
  • 深入GoChannel:并发编程的底层奥秘
  • JS面试基础(一) 垃圾回收,变量与运算符
  • 2025年渗透测试面试题总结-225(题目+回答)
  • 重庆电商平台网站建设合肥推广优化公司
  • Linux命令行基础:常用命令快速上手(附代码示例)
  • 在Ubuntu Desktop操作系统下,rustdesk客户端如何设置成开机自动启动?
  • 建设静态网站怎么制作网页链接在微信上发
  • Pandas-DataFrame 数据结构详解
  • 用层还是表格做网站快淘宝建设网站的好处
  • 2025年渗透测试面试题总结-224(题目+回答)
  • 详细了解TLS、HTTPS、SSL原理
  • 弹性力学| 应力应变关系
  • 网站建设实习收获多平台网页制作
  • BPE(Byte Pair Encoding)详解:从基础原理到现代NLP应用
  • 【Java学习路线| 最佳食用指南 60days】
  • nfs的运用
  • 【企业架构】TOGAF架构标准规范-迁移计划
  • 做网站用asp还是php亚马逊建站服务
  • 数据结构(15)
  • 《算法闯关指南:优选算法--前缀和》--29.和为k的子数组,30.和可被k整除的子数组
  • 如何在GitHub仓库中添加MIT开源许可证
  • 在Linux(deepin-community-25)下安装MongoDB
  • WebView 最佳封装模板(BaseWebActivity + WebViewHelper)
  • 珲春市建设局网站中国设计网字体
  • 杭州英文网站建设杭州微信小程序外包
  • 顺序表vector--------练习题3题解
  • 触发器(Trigger):灵活控制窗口行为