现在的位置: 首页 > 综合 > 正文

linux useradd 命令详解

2012年04月29日 综合 ⁄ 共 2411字 ⁄ 字号 暂无评论

1、useradd命令

man手册页中对useradd描述如下:create a new user or update default new user information。从描述中可以看出useradd有两项功能:创建用户和更新创建新用户时的默认信息。它的语法格式为:

useradd [options] LOGIN

useradd -D

useradd -D [options]

-D选项是用来标示useradd的功能是创建用户还是更新创建新用户时的默认信息,换句话说,这个选项是用来显示和修改用useradd命令添加用户时的一些默认参数的,当用上面的第二种格式时(useradd -D),只显示默认信息,当用上面的第三种格式时(useradd -D [options]),修改默认信息,例如:

wangjiankun:/home/wangjk# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/sh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no
wangjiankun:/home/wangjk# useradd -D -e 2009-12-01
wangjiankun:/home/wangjk# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=2009-12-01
SHELL=/bin/sh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no
wangjiankun:/home/wangjk#

注意三个红色部分的变化。要想将EXPIRE的值改回原值运行命令:

useradd –D –e “”

即可。

总之,第一种格式是用来创建新用户的;第二种格式是用来显示创建新用户时的默认信息的;第三种格式是用来修改创建新用户时的默认信息的。

在第一种和第三种格式中的[options]可以是如下选项(-D选项只支持其中的前五个选项,用绿色表示):

(1)-b选项

我不知道把这个选项翻译成什么最合适,或许可以把它叫做“用户基址目录”,不过我通过几个实际的操作一定能说明白这个参数。

我们先查看一下默认参数的值,如下:

wangjiankun:/# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=2009-12-01
SHELL=/bin/sh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no

现在我们添加一个用户test_b,如下:
wangjiankun:/# useradd -c "test -b" test_b
wangjiankun:/#

此时在/etc/passwd文件中增加了如下一行:

test_b:x:1003:1003:test -b:/home/test_b:/bin/sh

注意红色部分:说明用户test_b的家目录为:/home/test_b

然后我们运行如下命令:

wangjiankun:/# useradd -D -b /opt

默认参数变为:
wangjiankun:/# useradd -D
GROUP=100
HOME=/opt
INACTIVE=-1
EXPIRE=2009-12-01
SHELL=/bin/sh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no

注意红色部分的变化:由/home变为/opt,然后我们再添加一个用户test_b_opt,如下:

wangjiankun:/# useradd -c "test -b @ /opt" test_b_opt

结果在/etc/passwd文件中增加了一行:

test_b_opt:x:1004:1004:test -b @ /opt:/opt/test_b_opt:/bin/sh

用户test_b_opt的家目录到了/opt目录下面。

通过上面的例子说明:-b选项决定着用户家目录所在的位置,而用户的实际家目录是由-b指定的或默认的HOME值加上用户名构成的。

下面把man手册中的解释粘贴在下面:

-b, --base-dir BASE_DIR
The default base directory for the system if -d dir is not
specified. BASE_DIR is concatenated with the account name to define
the home directory. If the -m option is not used, BASE_DIR must
exist.

(2)-e选项

指定用户的账号的到期时间,详细信息可参考文章开头介绍-D选项时的用例。

(3)-f选项

这个参数用到的不多,也不好试验,所以先将man手册中的解释粘贴在下面:

-f, --inactive INACTIVE
The number of days after a password expires until the account is
permanently disabled. A value of 0 disables the account as soon as
the password has expired, and a value of -1 disables the feature.
The default value is -1.

(4)-g选项

-g, --gid GROUP
The group name or number of the user's initial login group. The
group name must exist. A group number must refer to an already
existing group. The default group number is 1 or whatever is
specified in /etc/default/useradd.

这段话中提到了一个文件:/etc/default/useradd,值得注意。这个文件决定了创建新用户时的默认信息,也就是文章开头介绍的用命令useradd -D显示的信息,其实也可直接修改这个文件来修改默认值。

给我留言

留言无头像?