# usermod - 用于修改用户的基本信息

usermod命令 用于修改用户的基本信息。usermod 命令不允许你改变正在线上的使用者帐号名称。当 usermod 命令用来改变user id,必须确认这名user没在电脑上执行任何程序。你需手动更改使用者的 crontab 档。也需手动更改使用者的 at 工作档。采用 NIS server 须在server上更动相关的NIS设定。

# 适用范围

RedHat
RHEL
Ubuntu
CentOS
Debian
Deepin
SUSE
openSUSE
Fedora
Linux Mint
Alpine Linux
Arch Linux

# 语法

pwd  [OPTION]

# 选项

-c comment                          # 修改备注信息
-d home_dir                         # 修改账户每次登陆使用的目录
-e expire_date                      # 修改账号终止日期,MM/DD/YY
-f inactive_days                    # 账号过期后多久停用
-g initial_group                    # 修改账户的组,这个组必须存在
-G group,[...]                      # 修改用户的附加组
-l login_name                       # 变更使用者login时的名称为login_name,其余不变。特别是,使用者目录名应该也会跟着更动成新的登入名。
-s shell                            # 修改账户登录后使用的shell
-u uid                              # 修改用户ID

--help                           # 显示帮助文档
--version                        # 显示命令版本信息

# 相关文件

  • /etc/passwd使用者帐号资讯。
  • /etc/shadow使用者帐号资讯加密。
  • /etc/group群组资讯。

# 举例

将 newuser2 添加到组 staff 中:

usermod -G staff newuser2

修改newuser的用户名为newuser1:

usermod -l newuser1 newuser

锁定账号newuser1:

usermod -L newuser1

解除对newuser1的锁定:

usermod -U newuser1

增加用户到用户组中:

apk add shadow # 安装 shadow 包, usermod 命令包含在 usermod 中
usermod -aG group user # 添加用户到用户组中

-a 参数表示附加,只和 -G 参数一同使用,表示将用户增加到组中。

修改用户uid:

[sogrey@bogon ~]$ tail -n 2 /etc/passwd       #查看用户信息
webalizer:x:67:67:Webalizer:/var/www/usage:/sbin/nologin
user01:x:502:502::/home/user01:/bin/bash
[sogrey@bogon ~]$ usermod -u 503 user01       #修改uid为503
[sogrey@bogon ~]$ tail -n 2 /etc/passwd       #查看用户信息,uid已经改变
webalizer:x:67:67:Webalizer:/var/www/usage:/sbin/nologin
user01:x:503:502::/home/user01:/bin/bash

修改备注信息

[sogrey@bogon ~]$ usermod -c "user01 test" user01   #修改备注信息为“user01 test”
[sogrey@bogon ~]$ tail -n 2 /etc/passwd   #查看用户信息
webalizer:x:67:67:Webalizer:/var/www/usage:/sbin/nologin
user01:x:503:502:user01 test:/home/user01:/bin/bash

修改用户家目录

[sogrey@bogon ~]$ useradd sogrey
[sogrey@bogon ~]$ ls /home
sogrey
[sogrey@bogon ~]$ usermod -md /data/new_home sogrey
[sogrey@bogon ~]$ ls /home/
[sogrey@bogon ~]$ ls /data/
new_home