useradd(8) - 创建新用户或者更新默认的新用户信息
当不加-D 参数,useradd 指令使用命令列来指定新帐号的设定值并且使用系统上的预设值.新使用者帐号将产生一些系统档案,使用者目录建立,拷备起始档案等,这些均可以利用命令列选项指定。[ 此版本为 RedHatLinux 提供,可帮每个新加入的使用者建立个别的 group,毋须添加-n 选项 ]
useradd 命令 用于 Linux 中创建的新的系统用户。useradd 可用来建立用户帐号。帐号建好之后,再用 passwd 设定帐号的密码.而可用 userdel 删除帐号。使用 useradd 指令所建立的帐号,实际上是保存在 /etc/passwd
文本文件中
在 Slackware 中,adduser 指令是个 script 程序,利用交谈的方式取得输入的用户帐号资料,然后再交由真正建立帐号的 useradd 命令建立新用户,如此可方便管理员建立用户帐号。在 Red Hat Linux 中, adduser 命令 则是 useradd 命令的符号连接,两者实际上是同一个指令
useradd [options] LOGIN
useradd -D
useradd -D [options]
选项 & 参数
-c, --comment COMMENT
新帐号 password 档的说明栏, 任意字符串, 生成一个登陆的简短描述并且被当做用户的全名字段来使用
-b, --base-dir BASE_DIR
如果 d
没有指定, 这个默认文件夹将是系统默认的基准文件夹, BASE_DIR
是定义用户 home 目录的文件目录, 如果此目录不存在, 否则用户的 home 目录不会被创建
-d, --home HOME_DIR
新帐号每次登入时所使用的 HOME_DIR
。预设值为 BASE_DIR
内 login 名称,并当成登入时目录名称, HOME_DIR 的父级必须存在, 否则目录不会给创建
-e, --expiredate EXPIRE_DATE
帐号终止日期。日期的指定格式为 YYYY-MM-DD
-f, --inactive INACTIVE
用户密码过期之后几日内禁用, 当值为 0 时帐号则立即过期。而当值为-1 时则关闭此功能,预设值为-1
-g, --gid GROUP
用户初始登陆时候的组名或者组 id, 组必须存在, 群组数字也须为现有存在的群组
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]
定义此使用者为此一堆 groups 的成员。每个群组使用 ,
区格开来,不可以夹杂空白字符。群组名同-g 选项的限制。定义值为使用者的起始群组。
-h, --help
显示帮助信息
-M
用户的 Home 目录将不会被创建, 只有在 /etc/login.defs
系统设定中的才会创建目录
-m, --create-home
使用者目录如不存在则自动建立。如使用-k 选项 SKEL_DIR
内的档案将复制至使用者目录下。否则的话 /etc/skel
目录下的档案会复制过去取代。任何在 SKEL_DIR
, /etc/skel
的目录也相同会在使用者目录下一一建立。 -k
选项必须和 -m
选项同时使用, 不建立目录以及不复制任何档案为预设值。
-l
[Red Hat] 不向用户登陆的日志文件中填写信息
-n
默认创建用户的时候将创建一个和用户相同名称的组, 这个选项关闭这个行为, 当这个选项使用的时候, 用户必须指定一个组
When this option is used, users by default will be placed in whatever group is specified in /etc/default/useradd
. If no default group is defined, group 1 will be used.
-K, --key KEY=VALUE
覆盖 /etc/login.defs
默认值 (UID_MIN, UID_MAX, UMASK, PASS_MAX_DAYS and others).例如: K PASS_MAX_DAYS=-1
在创建系统账户时候关闭密码过期. 及时系统账号没有密码.支持多值设定 K UID_MIN=100 -K UID_MAX=499
Note: K UID_MIN=10,UID_MAX=499
将不合法
-o, --non-unique
允许使用重复的 (非唯一) UID 创建用户
-p, --password PASSWORD
加密的密码, 使用 crypt(3)
返回, 默认是禁用账户
-r
This flag is used to create a system account. That is, a user with a UID lower than the value of UID_MIN defined in /etc/login.defs and whose password does not expire. Note that useradd will not create a home directory for such an user, regardless of the default setting in /etc/login.defs. You have to specify -m option if you want a home directory for a system account to be created. This is an option added by Red Hat
-s, --shell SHELL
使用者登入后使用的 shell 名称, 默认留空, 让系统选择默认的 shell, 例如 s /sbin/nologin
是不允许登陆 u, --uid UID
用户的 ID 值。必须为唯一的 ID 值,除非用 o
选项。数字不可为负值。预设为最小不得小于 UID_MIN
而逐次增加。0~ UID_MIN
传统上是保留给系统帐号使用。
-Z, --selinux-user SEUSER
The SELinux user for the user’s login. The default is to leave thisfield blank, which causes the system to select the default SELinuxuser.
改变默认值
当使用 -D
选项, useradd
将显示默认的当前值, 或者使用命令行更新当前值, 可用选项如下
-b HOME_DIR
定义使用者所属目录的 父目录
。使用者名称会附加在 HOME_DIR
后面用来建立新使用者的目录。使用-d 后则此选项无效。
-e EXPIRE_DATE
使用者帐号过期日期
-f INACTIVE
帐号过期几日后停权
-g, --gid GROUP
新帐号起始群组名或 ID。群组名须为现有存在的名称。群组 ID 也须为现有存在的群组。
-s, --shell SHELL
使用者登入后使用的 shell 名称。往后新加入的帐号都将使用此 shell
如不指定任何参数,useradd 显示目前预设的值
备注
/etc/skel/
目录下的文件将会覆盖默认的用户文件
The system administrator is responsible for placing the default user files in the /etc/skel/ directory.
This version of useradd was modified by Red Hat to suit Red Hat user/group conventions.
涉及到的文件
/etc/passwd #User account information.
/etc/shadow #Secure user account information.
/etc/group #Group account information.
/etc/gshadow #Secure group account information.
/etc/default/useradd #Default values for account creation.
/etc/skel/ #Directory containing default files.
/etc/login.defs #Shadow password suite configuration.
退出值
The useradd command exits with the following values:
0 success
1 can't update password file
2 invalid command syntax
3 invalid argument to option
4 UID already in use (and no -o)
6 specified group doesn't exist
9 username already in use
10 can't update group file
12 can't create home directory
13 can't create mail spool
实例
新建用户加入组:
useradd –g sales jack –G company,employees //-g:加入主要组、-G:加入次要组
建立一个新用户账户,并设置 ID:
useradd duoli -u 544
需要说明的是,设定 ID 值时尽量要大于 500,以免冲突。因为 Linux 安装后会建立一些特殊用户,一般 0 到 499 之间的值留给 bin、mail 这样的系统账号。