useradd
创建的新的系统用户
补充说明
useradd
命令用于Linux中创建新的系统用户。useradd
可用来建立用户账号。账号建好之后,再用passwd
设定账号的密码。而可用userdel
删除账号。使用useradd
指令所建立的账号,实际上是保存在 /etc/passwd
文本文件中。
在Slackware中,adduser
指令是个script程序,利用交谈的方式取得输入的用户账号资料,然后再交由真正建立账号的useradd
命令建立新用户,如此可方便管理员建立用户账号。在Red Hat Linux中, adduser
命令则是useradd
命令的符号连接,两者实际上是同一个指令。
语法
useradd
(选项) (参数)
选项
-b, --base-dir BASE_DIR
:如果未指定-d HOME_DIR
,则为系统的默认基本目录。如果未指定此选项,useradd
将使用/etc/default/useradd
中的HOME
变量指定的基本目录,或默认使用/home
。-c, --comment COMMENT
:加上备注文字。任何文本字符串。它通常是对登录名的简短描述,目前用作用户全名的字段。-d, --home HOME_DIR
:将使用HOME_DIR
作为用户登录目录的值来创建新用户。-D, --defaults
:变更预设值。-e, --expiredate EXPIRE_DATE
:用户帐户将被禁用的日期。 日期以YYYY-MM-DD
格式指定。-f, --inactive INACTIVE
:密码过期后到账户被永久禁用的天数。-g, --gid GROUP
:用户初始登录组的组名或编号。组名必须存在。组号必须引用已经存在的组。-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]
:用户也是其成员的补充组列表。每个组用逗号隔开,中间没有空格。-h, --help
:显示帮助信息并退出。-k, --skel SKEL_DIR
:骨架目录,其中包含要在用户的主目录中复制的文件和目录,当主目录由useradd
创建时。-K, --key KEY=VALUE
:覆盖/etc/login.defs
默认值(UID_MIN
、UID_MAX
、UMASK
、PASS_MAX_DAYS
等)。-l, --no-log-init
:不要将用户添加到lastlog
和faillog
数据库。-m, --create-home
:如果用户的主目录不存在,则创建它。-M
:不要创建用户的主目录,即使/etc/login.defs
(CREATE_HOME
) 中的系统范围设置设置为 yes。-N, --no-user-group
:不要创建与用户同名的组,而是将用户添加到由-g
选项或/etc/default/useradd
中的GROUP
变量指定的组中。-o, --non-unique
:允许创建具有重复(非唯一)UID的用户账户。此选项仅在与-o
选项结合使用时有效。-p, --password PASSWORD
:crypt(3)
返回的加密密码。默认是禁用密码。-r, --system
:创建一个系统账户。-s, --shell SHELL
:用户登录 shell 的名称。-u, --uid UID
:用户 ID 的数值。-U, --user-group
:创建一个与用户同名的组,并将用户添加到该组。-Z, --selinux-user SEUSER
:用户登录的 SELinux 用户。默认情况下将此字段留空,这会导致系统选择默认的 SELinux 用户。
更改默认值
当仅使用 -D
选项调用时,useradd
将显示当前默认值。当使用 -D
和其他选项调用时,useradd
将更新指定选项的默认值。有效的默认更改选项是:
-b
,-d
,-e
,f
,-g
,-s
,-u
参数
用户名
:要创建的用户名。
退出值
useradd
命令以以下值退出:
- 0:成功
- 1:无法更新密码文件
- 2:无效的命令语法
- 3:选项的无效参数
- 4:UID已经在使用(并且没有
-o
) - 6:指定的组不存在
- 9:用户名已被使用
- 10:无法更新组文件
- 12:无法创建主目录
- 13:无法创建邮件假脱机
- 14:无法更新 SELinux 用户映射
文件
/etc/passwd
:用户帐户信息。/etc/shadow
:保护用户帐户信息。/etc/group
:组帐户信息。/etc/gshadow
:保护组帐户信息。/etc/default/useradd
:帐户创建的默认值。/etc/skel/
:包含默认文件的目录。/etc/login.defs
:影子密码套件配置。
实例
新建用户加入组:
代码语言:javascript复制useradd –g sales jack –G company,employees # -g:加入主要组、-G:加入次要组
建立一个新用户账户,并设置ID:
代码语言:javascript复制useradd caojh -u 544
需要说明的是,设定ID值时尽量要大于500,以免冲突。因为Linux安装后会建立一些特殊用户,一般0到499之间的值留给bin、mail这样的系统账号。