在Linux 系统中,可以使用 useradd 命令新建用户,此命令的基本格式如下:

[root@localhost ~]#useradd [选项] 用户名

该命令常用的选项及各自的含义,如表 1 所示。

表 1 useradd命令常用选项

选项含义

-u UID

手工指定用户的 UID,注意 UID 的范围(不要小于 500)。

-d 主目录

手工指定用户的主目录。主目录必须写绝对路径,而且如果需要手工指定主目录,则一定要注意权限;

-c 用户说明

手工指定/etc/passwd文件中各用户信息中第 5 个字段的描述性内容,可随意配置;

-g 组名

手工指定用户的初始组。一般以和用户名相同的组作为用户的初始组,在创建用户时会默认建立初始组。一旦手动指定,则系统将不会在创建此默认的初始组目录。

-G 组名

指定用户的附加组。我们把用户加入其他组,一般都使用附加组;

-s shell

手工指定用户的登录 Shell,默认是 /bin/bash;

linux新建用户_linux 新建用户赋权_linux怎么新建用户

-e 曰期

指定用户的失效曰期,格式为 “YYYY-MM-DD”。也就是 /etc/shadow 文件的第八个字段;

-o

允许创建的用户的 UID 相同。例如,执行 “useradd -u 0 -o usertest” 命令建立用户 usertest,它的 UID 和 root 用户的 UID 相同,都是 0;

-m

建立用户时强制建立用户的家目录。在建立系统用户时;

-r

创建系统用户,也就是 UID 在 1~499 之间,供系统程序使用的用户。由于系统用户主要用于运行系统所需服务的权限配置,因此系统用户的创建默认不会创建主目录。

其实,系统已经帮我们规定了非常多的默认值,在没有特殊要求下,无需使用任何选项即可成功创建用户。例如:

linuxidc@linuxidc:~/linuxidc.com$ sudo useradd linuxmi

linuxidc@linuxidc:~/linuxidc.com$ sudo useradd -m linuxidc.com

此行命令就表示创建 linuxmi 普通用户。

不要小看这条简单的命令,它会完成以下几项操作:

1. 在 /etc/passwd 文件中创建一行与 linuxmi 用户相关的数据:

linuxidc@linuxidc:~/linuxidc.com$ grep “linuxmi” /etc/passwd

linuxmi:x:1001:1001::/home/linuxmi:/bin/sh

可以看到,用户的 UID 是从 1001 开始计算的。同时默认指定了用户的家目录为 /home/linuxmi/,用户的登录 Shell 为 /bin/sh。

2. 在 /etc/shadow 文件中新增了一行与 linuxmi 用户密码相关的数据:

linuxidc@linuxidc:~/linuxidc.com$ sudo grep “linuxmi” /etc/shadow

linuxmi:!:18034:0:99999:7:::

当然,这个用户还没有设置密码,所以密码字段是 “!!”,代表这个用户没有合理密码,不能正常登录。同时会按照默认值设定时间字段,例如密码有效期有 99999 天,距离密码过期 7 天系统会提示用户“密码即将过期”等。

3. 在 /etc/group 文件中创建一行与用户名一模一样的群组:

linuxidc@linuxidc:~/linuxidc.com$ grep “linuxmi” /etc/group

linuxmi:x:1001:

该群组会作为新建用户的初始组。

4. 在 /etc/gshadow 文件中新增一行与新增群组相关的密码信息:

linuxidc@linuxidc:~/linuxidc.com$ sudo grep “linuxmi” /etc/gshadow

linuxmi:!::

当然,我们没有设定组密码,所以这里没有密码linux新建用户,也没有组管理员。

5. 默认创建用户的主目录和邮箱:

drwxr-xr-x 2 linuxidc.com linuxidc.com 4096 5月 18 05:03 /home/linuxidc.com//

linuxidc@linuxidc:~/linuxidc.com$ ll /var/spod/mail/linuxidc.com

注意文件的权限,要让 linuxidc.com 用户拥有相应的权限。

6. 将 /etc/skel 目录中的配置文件复制到新用户的主目录中(至于为什么,学完本节内容就会明白)。

可以看到,useradd 命令创建用户的过程,其实就是修改了与用户相关的几个文件或目录,对这些文件的详细介绍见 。

那useradd 命令的这些默认值保存哪里linux新建用户,能否手工修改呢?

答案是肯定的。useradd 命令在添加用户时参考的默认值文件主要有两个,分别是 /etc/default/useradd 和 /etc/login.defs。

/etc/default/useradd 文件

首先,使用 Vim 命令查看 /etc/default/useradd 文件中包含哪些内容:

linuxidc@linuxidc:~/linuxidc.com$ cat /etc/default/useradd

# Default values for useradd(8)

#

# The SHELL variable specifies the default login shell on your

linux怎么新建用户_linux 新建用户赋权_linux新建用户

# system.

# Similar to DHSELL in adduser. However, we use “sh” here because

# useradd is a low level utility and should be as general

# as possible

SHELL=/bin/sh

#

# The default group for users

# 100=users on Debian systems

# Same as USERS_GID in adduser

# This argument is used when the -n flag is specified.

# The default behavior (when -n and -g are not specified) is to create a

# primary user group with the same name as the user being added to the

# system.

# GROUP=100

#

# The default home directory. Same as DHOME for adduser

# HOME=/home

#

# The number of days after a password expires until the account

# is permanently disabled

# INACTIVE=-1

#

# The default expire date

# EXPIRE=

#

# The SKEL variable specifies the directory containing “skeletal” user

# files; in other words, files such as a sample .profile that will be

# copied to the new user’s home directory when it is created.

# SKEL=/etc/skel

#

# Defines whether the mail spool should be created while

# creating the account

# CREATE_MAIL_SPOOL=yes