如何在Linux中创建用户(useradd命令)

Linux是一个多用户系统,这意味着多个人可以同时与同一个系统进行交互。 作为系统管理员,您有责任通过创建和删除用户并将其分配给不同的组来管理系统的用户和组。

在本文中,我们将讨论如何使用 useradd 命令。

useradd 命令#

的一般语法 useradd 命令如下:

useradd [OPTIONS] USERNAME

只有root或具有sudo特权的用户才能使用 useradd 命令来创建新的用户帐户。

调用时, useradd 根据命令行上指定的选项以及在命令行中设置的默认值创建一个新的用户帐户 /etc/default/useradd 文件。

此文件中定义的变量因分布而异,这导致 useradd 命令在不同的系统上产生不同的结果。

useradd 还读取了 /etc/login.defs 文件。 该文件包含影子密码套件的配置,例如密码过期策略,创建系统用户和普通用户时使用的用户ID范围等。

如何在Linux中创建新用户

要创建新的用户帐户,请调用 useradd 命令,后跟用户名。

例如,创建一个名为 username 您将运行:

sudo useradd username

如果没有任何选择地执行, useradd 使用在中指定的默认设置创建一个新的用户帐户 /etc/default/useradd 文件。

该命令将条目添加到 /etc/passwd/etc/shadow, /etc/group/etc/gshadow 文件。

为了能够以新创建的用户身份登录,您需要设置用户密码。 为此,请运行 passwd 命令,后跟用户名:

sudo passwd username

系统将提示您输入并确认密码。 确保使用强密码。

Changing password for user username.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

如何添加新用户和创建主目录

在大多数Linux发行版中,使用 useradd,则不会创建用户的主目录。

使用 -m--create-home)选项将用户主目录创建为 /home/username

sudo useradd -m username

上面的命令创建新用户的主目录并从中复制文件 /etc/skel 目录到用户的主目录。 如果您在 /home/username 目录,您将看到初始化文件:

ls -la /home/username/
drwxr-xr-x 2 username username 4096 Dec 11 11:23 .
drwxr-xr-x 4 root     root     4096 Dec 11 11:23 ..
-rw-r--r-- 1 username username  220 Apr  4  2018 .bash_logout
-rw-r--r-- 1 username username 3771 Apr  4  2018 .bashrc
-rw-r--r-- 1 username username  807 Apr  4  2018 .profile

在主目录中,用户可以编写,编辑和删除文件和目录。

创建具有特定主目录的用户

默认 useradd 在以下位置创建用户的主目录 /home。 如果要在其他位置创建用户的主目录,请使用 d--home) 选项。

这是显示如何创建名为的新用户的示例 username 主目录为 /opt/username

sudo useradd -m -d /opt/username username

创建具有特定用户ID的用户

在Linux和类似Unix的操作系统中,用户由唯一的UID和用户名标识。

用户标识符(UID)是Linux系统分配给每个用户的唯一正整数。 UID和其他访问控制策略用于确定用户可以对系统资源执行的操作的类型。

缺省情况下,创建新用户时,系统会从“用户”中指定的用户ID范围中分配下一个可用的UID。 login.defs 文件。

调用 useradd-u--uid)选项,以创建具有特定UID的用户。 例如,创建一个名为 username UID为 1500 您将输入:

sudo useradd -u 1500 username

您可以使用来验证用户的UID id 命令:

id -u username
1500

创建具有特定组ID的用户

Linux组是组织单位,用于组织和管理Linux中的用户帐户。 组的主要目的是为一组可以在组内用户之间共享的给定资源定义一组特权,例如读取,写入或执行权限。

创建新用户时,默认行为 useradd 命令是创建一个名称与用户名相同,GID与UID相同的组。

-g--gid)选项可让您创建具有特定初始登录组的用户。 您可以指定组名或GID号。 组名或GID必须已经存在。

下面的示例演示如何创建一个名为 username 并将登录组设置为 users 类型:

sudo useradd -g users username

要验证用户的GID,请使用 id 命令:

id -gn username
users

创建用户并分配多个组

Linux操作系统中有两种类型的组:主要组和次要(或补充)组。 每个用户可以完全属于一个主要组,零个或多个次要组。

您可以指定用户将加入的补充组列表。 -G--groups) 选项。

以下命令创建一个新用户,名为 username 与主要群体 users 和中学组 wheeldocker

sudo useradd -g users -G wheel,developers username

您可以通过输入来检查用户组

id username
uid=1002(username) gid=100(users) groups=100(users),10(wheel),993(docker)

使用特定的登录Shell创建用户#

默认情况下,新用户的登录外壳设置为在 /etc/default/useradd 文件。 在某些发行版中,默认外壳设置为 /bin/sh 而在其他情况下,它设置为 /bin/bash

-s--shell)选项可让您指定新用户的登录shell。

例如,创建一个名为 username/usr/bin/zsh 作为登录shell类型:

sudo useradd -s /usr/bin/zsh username

检查用户条目 /etc/passwd 文件来验证用户的登录shell:

grep username /etc/passwd
username:x :1001:1001::/home/username:/usr/bin/zsh

创建具有自定义注释的用户

-c--comment)选项可让您为新用户添加简短说明。 通常,将用户的全名或联系信息添加为注释。

在下面的示例中,我们将创建一个名为 username 带文本字符串 Test User Account 作为评论:

sudo useradd -c "Test User Account" username

评论保存在 /etc/passwd 文件:

grep username /etc/passwd
username:x :1001:1001:Test User Account:/home/username:/bin/sh

评论字段也称为 GECOS

创建具有到期日期的用户

要定义新用户帐户的到期时间,请使用 -e--expiredate) 选项。 这对于创建临时帐户很有用。

日期必须使用 YYYY-MM-DD 格式。

例如,创建一个名为 username 到期时间设置为2019年1月22日,您将运行:

sudo useradd -e 2019-01-22 username

使用 chage 命令以验证用户帐户的到期日期:

sudo chage -l username

输出将如下所示:

Last password change					: Dec 11, 2018
Password expires					: never
Password inactive					: never
Account expires						: Jan 22, 2019
Minimum number of days between password change		: 0
Maximum number of days between password change		: 99999
Number of days of warning before password expires	: 7

创建系统用户

系统与常规(普通)用户之间没有真正的技术差异。 通常,系统用户是在安装操作系统和新软件包时创建的。

使用 -r--system)选项来创建系统用户帐户。 例如,创建一个新的系统用户,名为 username 您将运行:

sudo useradd -r username

系统用户的创建没有有效期。 他们的UID是从在 login.defs 文件,该文件不同于普通用户使用的范围。

更改默认的useradd值

可以使用以下命令查看和更改默认的useradd选项。 -D--defaults 选项,或通过手动编辑 /etc/default/useradd 文件。

要查看当前的默认选项,请输入:

useradd -D

输出将如下所示:

GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/sh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no

假设您要更改默认的登录外壳 /bin/sh/bin/bash。 为此,请指定新的外壳,如下所示:

sudo useradd -D -s /bin/bash

您可以通过运行以下命令来验证是否更改了默认外壳程序值:

sudo useradd -D | grep -i shell
SHELL=/bin/bash

结论#

我们已经向您展示了如何使用来创建新的用户帐户 useradd 命令。 相同的说明适用于任何Linux发行版,包括Ubuntu,CentOS,RHEL,Debian,Fedora和Arch Linux。

useradd 是一个低级实用程序,Debian和Ubuntu用户可以改用更友好的adduser命令。

如有任何疑问,请随时发表评论。

终端用户组

Sidebar