在Linux中使用useradd / adduser命令创建用户帐户

在本教程中,您将学习如何在Linux中使用useradd / adduser命令创建用户帐户。用户管理是Linux系统管理中最常见的任务之一。创建用户,设置用户环境,设置密码,管理用户组,删除用户等都是Linux中围绕用户管理的任务。在LInux中管理用户的能力是Linux管理中最重要的基本技能之一。

请注意,Linux中的用户帐户管理需要提升的特权;使用root帐户或具有sudo权限的标准帐户。

下面是有关在Linux中创建用户帐户的内容;

目录

  • 在Linux中使用useradd / adduser命令创建用户帐户
    • 在Linux中使用useradd命令创建用户帐户
    • 在Linux中使用adduser命令创建用户帐户
    • 在Linux中设置用户帐户密码
    • 在Linux中查看用户帐户信息
      • 查看一般用户帐户信息
      • 在Linux中查看用户帐户密码信息
    • 参考
    • 其他相关教程

在Linux中使用useradd / adduser命令创建用户帐户

您可以通过多种方式在Linux中创建用户帐户。如果使用的是基于台式机的系统,则可以从GUI(或控制台)创建用户帐户,而在无头服务器上,可以从控制台(此处称为终端)创建用户帐户。在本教程中,我们将专注于从终端在Linux中创建用户管理。

Linux提供了多种用于创建用户帐户的命令,最常用的是 useraddadduser 实用程序。

使用创建用户帐户 useradd Linux中的命令

的命令行语法 useradd 效用是

useradd [-c comment] [-d home-dir] [-e expire-date] [-f inactive-days] [-g default-group] [-G group[,...]] [-m [-k skeleton-dir] | -M] [-p password] [-s shell] [-u UID [-o]] [-r] [-N] username

以其最简单的形式,您只需运行如下所示的useradd即可创建一个用户。

useradd USERNAME

例如,为用户johndoe创建一个帐户;

useradd johndoe

这将创建一个具有默认选项的用户帐户。 /etc/login.defs 文件。您可以从 passwd 数据库。 useradd命令的默认选项也定义在 /etc/default/useradd 文件。

getent passwd johndoe
johndoe:x:1002:1002::/home/johndoe:/bin/sh

默认情况下,还将为新用户创建一个组,该组具有与用户ID(UID)相同的组ID(GID)和与用户名相同的组名;

getent group johndoe
johndoe:x:1002:

您可以将多个选项传递给useradd实用程序,以在创建过程中自定义您的用户帐户。例如,请参见下面的命令;

useradd -m -c "Jane Doe" -s /bin/bash -g level1 -G level1,level2 janedoe

其中的选项:

  • -m:告诉useradd命令创建用户的主目录(/ home / janedoe)。
  • -c:定义用户的简短描述,当前用作用户全名(Jane Doe)的字段。
  • -s:定义了自定义用户的登录外壳,上面使用了bash。检查/etc/login.defs的默认值,通常是/ bin / sh
  • -g:为用户定义一个自定义的主要组,而不是创建类似于登录名(用户名)的组。该组必须已经存在。
  • -G:将用户添加到指定的其他组中。组也必须已经存在。

要列出在useradd默认文件中定义的默认选项, /etc/default/useradd;

useradd -D

有关其他命令行选项的完整说明,请参阅 man useradd

在Linux中使用adduser命令创建用户帐户

adduser 命令,不像 useradd 命令,可帮助您以交互方式将用户帐户添加到linux系统。您只需按照以下步骤在Linux终端上执行它;

adduser 

例如,创建一个名为janedoe的用户;

adduser janedoe

在基于Debian的系统上,此命令将以交互方式运行,询问有关用户的各种详细信息;

Adding user `janedoe' ...
Adding new group `janedoe' (1002) ...
Adding new user `janedoe' (1001) with group `janedoe' ...
Creating home directory `/home/janedoe' ...
Copying files from `/etc/skel' ...
New password: 
Retype new password: 
passwd: password updated successfully
Changing the user information for janedoe
Enter the new value, or press ENTER for the default
	Full Name []: Jane Doe
	Room Number []: 
	Work Phone []: 
	Home Phone []: 
	Other []: 
Is the information correct? [Y/n] y

adduser和useradd命令均会复制在以下内容中定义的初始用户配置文件/环境设置: /etc/skel 目录到用户登录名/主目录。

默认情况下,adduser命令使用在以下位置定义的默认设置 /etc/adduser.conf 文件。

您可以在命令行上指定各种选项。

adduser --home /home/janedoe --shell /bin/bash --gecos "" janedoe

在RHEL衍生产品上,adduser命令是 符号链接 到useradd命令,并且将作为useradd命令以非交互方式运行。

ls -alh /usr/sbin/adduser
lrwxrwxrwx. 1 root root 7 Nov  8  2019 /usr/sbin/adduser -> useradd

在Linux中设置用户帐户密码

在使用用户帐户之前,您需要为其设置密码。 useradd 命令不提示输入密码。 adduser 但是,命令提示您设置密码。

您可以使用以下方式设置/重置用户帐户密码: passwd 效用。

作为管理员/超级用户(root),您可以像执行命令一样简单地设置用户密码。

passwd username

您还可以使用passwd实用程序控制其他帐户详细信息。阅读更多 man passwd 关于命令行选项。

作为标准用户,您只能重置自己的密码。重置密码时,您需要提供旧密码。

useradd 命令,您可以在命令行上使用 -p ENCRYPTED_PASSWORD 选项。

您可以使用openssl或其他工具(例如crypt)生成加密的密码。

请参阅下面的示例命令以使用 opensslpasswd 命令生成加密密码。

openssl passwd password

这将为生成哈希 password 密码。

QqjgPLfXQD8Zk

然后,您可以将其作为散列传递给-p选项。

useradd -m -p QqjgPLfXQD8Zk username

您只需使用一个命令即可实现此目的。

useradd -m -p $(openssl passwd password) username

在Linux中查看用户帐户信息

在Linux中有两个文件用于存储用户信息记录。

  • /etc/passwd:存储常规用户信息,例如用户名,用户ID,组ID,主目录位置,登录Shell和Geckos信息。标准用户可以读取该文件。
  • /etc/shadow:存储用户密码信息,例如到期日期,密码哈希……标准用户无法读取该文件。

查看一般用户帐户信息

要从 passwd 数据库,使用 getent 工具。

getent passwd

这将列出所有用户及其帐户信息。如果要查看特定的用户帐户信息,则可以grep用户或简单地传递用户名作为参数。

getent passwd | grep janedoe

要么

getent passwd janedoe
janedoe:x:1002:1002::/home/janedoe:/bin/bash

哪里:

栏位编号领域描述
1个珍妮多帐号用户名
2Xletter x 是存储在影子文件中的用户加密密码的占位符。
31002用户身份
41002组号
5(空白)此字段应包含一般用户信息(GECOS),例如真实姓名(Jane Doe),电话号码,位置
6/ home / janedoe这是用户的主目录
7/ bin / bash这是分配给用户的外壳

在Linux中查看用户帐户密码信息

要查看用户的密码信息,您可以类似地从 shadow 使用getent命令的数据库。

getent shadow janedow
janedoe:!!:18478:0:99999:7:::
栏位编号栏位值描述
1个珍妮多帐号用户名
2!!//*/空白/密码哈希two exclamation marks (!!):未为帐户设置密码one exclamation marks (!):表明该帐户已被锁定an asterisk (*):表示该帐户不接受登录。blank:帐户的密码已被删除,因此,您可以登录而无需提示输入密码。hash:已为该帐户设置了加密密码
318478上次密码更改日期。以1970年1月1日以来的天数表示。值为-1表示该功能已禁用。
40可以更改密码的天数。 0表示可以随时更改密码。
599999几天后必须更改密码。 99999表示该帐户没有过期,因此密码可以保存很多年。
67密码过期前的警告天数。演出7天
7帐户过期后可以保留的天数,然后完全禁用/停用。
8自1970年1月1日以来,已禁用帐户的天数

这就是在Linux中创建和查看用户帐户信息的容易程度。

我们在本教程中使用的命令支持其他许多命令行选项。确保检查每个单独命令的手册页,以获得有关这些选项的全面说明。

这标志着我们指南的结尾,说明了如何在Linux中使用useradd / adduser命令创建用户帐户。

参考

  • man useradd
  • man adduser
  • 男子密码

Sidebar