侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux usermod命令详解:如何修改用户账户信息(附实例教程和注意事项)

usermod命令是一个用来修改用户账户信息的命令行工具。本文将介绍usermod命令的基本用法,包括如何添加用户到组,更改用户的shell,登录名,主目录等。本文还将提供一些usermod命令的实例和注意事项,帮助你更好地掌握这个命令。

Linux usermod命令介绍

usermod命令的全称是user modify,它可以修改用户的登录信息,如密码,主目录,shell,用户ID,组ID,注释等。usermod命令只能由root用户或具有sudo权限的用户执行。usermod命令的语法格式如下:

usermod [选项] 用户名

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

Linux usermod命令适用的Linux版本

usermod命令是一个标准的Linux命令,它适用于大多数的Linux发行版,如Ubuntu, Debian, CentOS, Fedora, RedHat等。如果你的Linux系统没有安装usermod命令,你可以使用以下命令来安装它:

  • 对于基于Debian的系统,如Ubuntu,你可以使用apt命令来安装usermod命令:
[linux@bashcommandnotfound.cn ~]$ sudo apt update
[linux@bashcommandnotfound.cn ~]$ sudo apt install passwd
  • 对于基于RedHat的系统,如CentOS,你可以使用yum命令来安装usermod命令:
[linux@bashcommandnotfound.cn ~]$ sudo yum update
[linux@bashcommandnotfound.cn ~]$ sudo yum install passwd
  • 对于CentOS 8或更高版本,你可以使用dnf命令来安装usermod命令:
[linux@bashcommandnotfound.cn ~]$ sudo dnf update
[linux@bashcommandnotfound.cn ~]$ sudo dnf install passwd

Linux 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的系统上有效。

Linux usermod命令的常用选项说明

usermod命令的常用选项有以下几个:

  • -a -G:将用户添加到一个或多个附加组,这是管理用户组的常用方法。例如,要将用户linuxize添加到sudo和docker组,可以使用以下命令:
[linux@bashcommandnotfound.cn ~]$ sudo usermod -a -G sudo,docker linuxize
  • -c:更改用户的注释信息,这可以用来存储用户的全名,联系方式,职位等信息。例如,要为用户linuxize添加一个注释“Linux Administrator”,可以使用以下命令:
[linux@bashcommandnotfound.cn ~]$ sudo usermod -c "Linux Administrator" linuxize
  • -d -m:更改用户的主目录,并移动用户的主目录的内容到新的位置。这可以用来重新组织用户的文件系统结构。例如,要将用户linuxize的主目录从/home/linuxize更改为/home/users/linuxize,并移动所有的文件和目录,可以使用以下命令:
[linux@bashcommandnotfound.cn ~]$ sudo usermod -d /home/users/linuxize -m linuxize
  • -l:更改用户的登录名,这可以用来修正拼写错误,或者适应用户的姓名变化。例如,要将用户linuxize的登录名更改为linuxuser,可以使用以下命令:
[linux@bashcommandnotfound.cn ~]$ sudo usermod -l linuxuser linuxize
  • -s:更改用户的登录shell,这可以用来修改用户的默认命令行界面。例如,要将用户linuxize的登录shell从/bin/bash更改为/bin/zsh,可以使用以下命令:
[linux@bashcommandnotfound.cn ~]$ sudo usermod -s /bin/zsh linuxize

Linux usermod命令的实例

下面是一些usermod命令的实例,你可以根据自己的需要进行修改和尝试。

  • 将用户linuxize添加到wheel组,以便用户可以使用sudo命令:
[linux@bashcommandnotfound.cn ~]$ sudo usermod -a -G wheel linuxize
  • 将用户linuxize的密码过期日期设置为2023年11月27日:
[linux@bashcommandnotfound.cn ~]$ sudo usermod -e 2023-11-27 linuxize
  • 将用户linuxize的密码过期后的宽限期设置为10天,即用户可以在密码过期后的10天内登录:
[linux@bashcommandnotfound.cn ~]$ sudo usermod -f 10 linuxize
  • 将用户linuxize的主组更改为staff,这会影响用户创建的文件和目录的默认组:
[linux@bashcommandnotfound.cn ~]$ sudo usermod -g staff linuxize
  • 锁定用户linuxize的密码,以防止用户使用密码登录:
[linux@bashcommandnotfound.cn ~]$ sudo usermod -L linuxize

Linux usermod命令的注意事项

在使用usermod命令时,有以下几点需要注意:

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

评论区