usermod 命令

用途

更改用户属性。

语法

usermod [ -u uid ] [ -g pgroup ] [ -G group1,group2 ... ] [ -d dir [ -m ]] [ -s shell ] [ -c comment ] [ -l new_name ] [ -e 到期 ] [ -r role1,role2 ...] 登录

描述

注意: 如果系统上安装了网络信息服务 (NIS) 数据库,请勿使用 usermod 命令。
usermod 命令更改由 login 参数标识的用户的属性。 用户名必须已存在。 要更改属性,请指定标志和新的值。 以下文件包含该命令设置的本地用户属性:
  • /etc/passwd
  • /etc/security/environ
  • /etc/security/limits
  • /etc/security/user
  • /etc/security/user.roles
  • /etc/security/audit/config
  • /etc/group
  • /etc/security/group

避免更改帐户的标识以免损害系统安全性。 但是,使用 usermod 命令更改标识时,标识冲突检查也由 /etc/security/login.cfg 文件的 usw 节中的 dist_uniqid 属性控制。 标识冲突控制的行为与针对 mkuser 命令描述的行为相同。

标志

描述
-c 注释 提供有关 login 参数指定的用户的一般信息。 comment 参数是不含嵌入式冒号 (:) 字符的字符串,不能以字符 '#!'结尾。
-d 目录 将主目录更改为 dir 参数中指定的目录。
-g pgroup 标识主组。 pgroup 参数必须是有效的组名或标识。
-e 到期 标识帐户的截止日期。 expire 参数是一个以 MMDDhhmmyy 格式表示的 10 个字符的字符串,其中 MM 是月,DD 是天,hh 是小时,mm 是分钟,yy 是从 1939 年到 2038 年的最后 2 位数字。 所有字符都是数字。 如果 expire 参数为 0,那么该帐户未过期。 缺省值是 0。 请参阅 date 命令以获取更多信息。
-G group1,group2,... 标识用户所属的组。 group1,group2, ... 参数是组名的逗号分隔列表。
-l 新名称 指定用户的新名称。
-m 将用户当前主目录中的内容移到新主目录。 仅与 -d 标志一起使用。
-r role1,role2,... 列出该用户的管理角色。 role1,role2, ... 参数是角色名称的列表,以逗号分隔。
-s 外壳 定义在会话初始化时为用户运行的程序。 shell 参数是完整路径名。
-u uid 指定用户标识。 uid 参数是一个唯一的整数字符串。 避免更改该属性,以免破坏系统安全性。

退出状态

描述
0 命令成功完成。
>0 发生错误。

示例

  1. 要将用户 davis 更改为 system 组的成员,请输入下列命令:
    usermod -G system davis

限制

为确保用户信息的完整性,使用 usermod 命令时将应用某些限制。 只有 root 用户或具有 UserAdmin 授权的用户才能使用 usermod 命令执行以下任务:
  • 通过将 admin 属性设置为 true 使用户成为管理用户。
  • 更改管理用户的所有属性。
  • 将用户添加到管理组

管理组是 admin 属性设置为 True 的组。 安全组的成员可以更改非管理用户的属性以及将用户添加到非管理组。

usermod 命令仅处理本地用户数据。 不能使用它来更改注册表服务器(如 NIS 和 DCE)中的数据。

位置

/usr/sbin/usermod

文件数

usermod 命令具有对以下文件的读和写许可权。

描述
/etc/passwd 包含用户的基本属性。
/etc/security/user 包含用户的扩展属性。
/etc/security/user.roles 包含用户的管理角色属性。
/etc/security/limits 定义每个用户的资源配额和限制。
/etc/security/environ 包含用户的环境属性。
/etc/security/audit/config 包含审计配置信息。
/etc/security/lastlog 包含用户最后一次登录的属性。
/etc/group 包含组的基本属性。
/etc/security/group 包含组的扩展属性。