usermod命令:修改用户信息
侧边栏壁纸
  • 累计撰写 146 篇文章
  • 累计收到 2 条评论

usermod命令:修改用户信息

soulio
2024-10-07 / 0 评论 / 8 阅读 / 正在检测是否收录...

一、命令简介

usermod​ 命令用于修改用户账号的属性,例如更改用户的家目录、登录 shell、用户 ID(UID)、所属组等。

二、命令参数

基本用法

usermod [选项] 用户名

常用选项

  • -c, --comment COMMENT​:修改用户账户的注释信息(通常称为 GECOS 字段)。
  • -d, --home HOME_DIR​:修改用户的家目录。
  • -e, --expiredate EXPIRE_DATE​:设置账户的过期日期,格式为 YYYY-MM-DD。
  • -f, --inactive INACTIVE​:设置账户密码过期后到账户被禁用前的天数。
  • -g, --gid GROUP​:修改用户的基本组(主组)。
  • -G, --groups GROUP1[,GROUP2,...[,GROUPN]]​:修改用户附加组,原来的附加组会被覆盖。
  • -l, --login NEW_LOGIN​:修改用户账户的登录名。
  • -L, --lock​:锁定用户账户,使其无法登录。
  • -m, --move-home​:与 -d​ 选项一起使用,将用户家目录的内容移动到新的位置。
  • -p, --password PASSWORD​:设置用户账户的加密密码。
  • -s, --shell SHELL​:修改用户的登录 shell。
  • -u, --uid UID​:修改用户的用户 ID。
  • -U, --unlock​:解锁用户账户。

三、命令示例

tips:usermod ​命令需 sudo ​权限运行

  • 修改用户 john​ 的家目录到 /home/newjohn​:

    usermod -d /home/newjohn john
    
  • 将用户 john​ 添加到组 docker​:

    usermod -aG docker john
    

    注意:使用 -aG​ 而不是 -G​ 可以保留用户原来的附加组。

  • 将用户 john ​从组 docker ​中删除

    使用命令完成

    gpasswd -d john docker
    

    或者编辑 /etc/group 文件,找到 docker 组所在的行(如下),删除 ,john

    docker:x:999:soulio,john
    
  • 修改用户 john​ 的用户 ID 为 2000:

    usermod -u 2000 john
    
  • 锁定用户 john​ 的账户:

    锁定用户:禁止用户通过密码登录。

    usermod -L john
    
  • 解锁用户 john​ 的账户:

    usermod -U john
    
  • 修改用户 john​ 的默认 shell 为 zsh​:

    usermod -s /bin/zsh john
    

在使用 usermod​ 命令修改用户账户时,需要注意以下几点:

  • 修改用户 ID(UID)或组 ID(GID)时,需要确保新的 ID 没有被其他账户使用。
  • 修改家目录时,如果需要将现有数据移动到新位置,应使用 -m​ 选项。
  • 设置或更改密码时,应使用加密后的密码字符串,可以通过 openssl​ 命令或 passwd​ 命令的 --stdin​ 选项生成。
  • 在企业或生产环境中修改用户账户之前,建议先备份相关配置和数据。

四、更多

  • 锁定用户

usermod -L john​ 命令的作用是锁定用户 john​ 的账户,使其无法通过密码登录系统。具体来说,这个命令会在 /etc/shadow​ 文件中,用户 john​ 的密码字段前加上一个 !​ 或 *​ 符号,这会阻止系统的密码验证机制接受任何密码。
以下是该命令执行后 /etc/shadow​ 文件中用户 john​ 条目的示例变化:

# Before locking
john:$6$rounds=45678$asdasdasd...$asdasdasdasd:18000:0:99999:7:::
# After locking
john:!$6$rounds=45678$asdasdasd...$asdasdasdasd:18000:0:99999:7:::

锁定账户不会删除该账户或更改其任何其他属性,它只是防止用户通过密码登录。即使账户被锁定,以下情况仍然可能:

  • 如果系统允许,用户可能仍然可以通过 SSH 密钥认证等方式登录。
  • 系统管理员可以通过 usermod -U john​ 命令来解锁账户。
  • 账户的文件和目录仍然保持原有的权限和所有权。
    请注意,使用 usermod -L​ 命令需要管理员权限。
本文共 691 个字数,平均阅读时长 ≈ 2分钟
0

海报

正在生成.....

评论 (0)

取消