Linux的usermod命令详解

usermod介绍

usermod命令是用来修改用户账号信息的命令。它可以修改用户的登录信息,如:密码,主目录,shell,用户ID,组ID,注释等等。

usermod命令只能root用户或者有sudo权限的用户执行

usermod的语法

usermod [参数] 用户名

其中,用户名是要修改的用户的名称,选项是指定要修改的信息的参数。usermod命令的选项有很多,下面将介绍一些常用的选项。

-a: --append,将用户添加到附加组,而不是替换用户所属的所有组,这个选项必须和-G选项一起使用

-c: --comment,更改用户的注释信息,通常是用户的全名或是其他描述

-d: --home,更改用户的主目录,如果新目录不存在,usermod命令不会自动创建它

-e: --expiredate,更改用户的账号过期日期,格式为YYYY-MM-DD,如果设置为空,表示永不过期

-f: --inactive,更改用户的密码过期后的宽限期,即用户可以在密码过期后多少天内登录。如果设置为0,表示密码过期后立即禁用用户,如果设置为-1,表示禁用此功能

-g: --gid,更改用户的主组,可以是组名,组ID。用户只能有一个主组

-G: --groups,更改用户的附加组,可以是一个、多个组名或者组ID,用逗号分隔。用户可以有多个附件组

-l: --login,更改用户的登录名,即用户名。这个选项会同时更改用户的主目录和邮件目录的名称

-L:--lock,锁定用户的密码,即禁用用户的密码登录。这个选项不会禁用其他的认证方式,如公钥认证。

-m, --move-home:移动用户的主目录的内容到新的位置,这个选项通常与-d选项一起使用。

-o, --non-unique:允许用户有非唯一的用户ID,即与其他用户共享同一个用户ID。这个选项不推荐使用,因为可能会导致权限和安全问题。

-p, --password:更改用户的密码,这个选项需要提供一个未加密的密码作为参数。这个选项不安全,因为密码可能会被其他用户或进程查看。建议使用passwd命令来更改用户的密码。

-s, --shell:更改用户的登录shell,即用户登录后运行的程序。如果设置为空,表示禁用用户的登录shell。

-u, --uid:更改用户的用户ID,即用户的唯一标识符。这个选项会同时更改用户的主目录和邮件目录的属主,如果存在的话。

-U, --unlock:解锁用户的密码,即启用用户的密码登录。这个选项不会启用其他的认证方式,如公钥认证。

-Z, --selinux-user:更改用户的SELinux用户映射,即用户在SELinux策略中的角色。这个选项只在启用了SELinux的系统上有效。

实例演示:

-a -G:将用户添加到一个或多个附加组,这是管理用户组的常用方法。

例如,要将用户linuxize添加到sudo和docker组,可以使用以下命令:

sudo usermod -a -G sudo,docker linuxize

-c:更改用户的注释信息,这可以用来存储用户的全名,联系方式,职位等信息。

例如,要为用户linuxize添加一个注释“Linux Administrator”,可以使用以下命令:

sudo usermod -c "Linux Administrator" linuxize

-d -m:更改用户的主目录,并移动用户的主目录的内容到新的位置。这可以用来重新组织用户的文件系统结构。

例如,要将用户linuxize的主目录从/home/linuxize更改为/home/users/linuxize,并移动所有的文件和目录,可以使用以下命令:

sudo usermod -d /home/users/linuxize -m linuxize

-l:更改用户的登录名,这可以用来修正拼写错误,或者适应用户的姓名变化。

例如,要将用户linuxize的登录名更改为linuxuser,可以使用以下命令:

sudo usermod -l linuxuser linuxize

-s:更改用户的登录shell,这可以用来修改用户的默认命令行界面。

例如,要将用户linuxize的登录shell从/bin/bash更改为/bin/zsh,可以使用以下命令:

sudo usermod -s /bin/zsh linuxize

将用户linuxize添加到wheel组,以便用户可以使用sudo命令:

sudo usermod -a -G wheel linuxize

将用户linuxize的密码过期日期设置为2023年11月27日:

sudo usermod -e 2023-11-27 linuxize

将用户linuxize的密码过期后的宽限期设置为10天,即用户可以在密码过期后的10天内登录:

sudo usermod -f 10 linuxize

将用户linuxize的主组更改为staff,这会影响用户创建的文件和目录的默认组:

sudo usermod -g staff linuxize

锁定用户linuxize的密码,以防止用户使用密码登录:

sudo usermod -L linuxize

注意事项

  • 不要在用户登录的情况下修改用户的信息,因为这可能会导致不一致或错误的结果。建议先使用userdel -r命令删除用户,然后再使用useradd命令重新创建用户,并指定新的信息。
  • 不要随意更改用户的用户ID或组ID,因为这可能会影响用户对文件和目录的访问权限。如果需要更改用户的用户ID或组ID,建议先备份用户的文件和目录,然后使用find命令和chown命令来修改文件和目录的属主和属组。
  • 不要使用-p选项来更改用户的密码,因为这可能会暴露用户的密码。建议使用passwd命令来更改用户的密码,或者使用-L或-U选项来锁定或解锁用户的密码。
  • 如果你的系统没有usermod命令,或者你执行usermod命令时遇到bash: usermod: command not found的错误,你可以参考上面的安装。

参考:Linux usermod命令详解:如何修改用户账户信息(附实例教程和注意事项)-Linux入门自学网

Usermod 命令详解 - 知乎

posted @ 2025-08-29 10:04  月映冷香如你  阅读(116)  评论(0)    收藏  举报