在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提供了多种用于创建用户帐户的命令,最常用的是 useradd
和 adduser
实用程序。
使用创建用户帐户 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)生成加密的密码。
请参阅下面的示例命令以使用 openssl
与 passwd
命令生成加密密码。
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个 | 珍妮多 | 帐号用户名 |
2 | X | letter x 是存储在影子文件中的用户加密密码的占位符。 |
3 | 1002 | 用户身份 |
4 | 1002 | 组号 |
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 :已为该帐户设置了加密密码 |
3 | 18478 | 上次密码更改日期。以1970年1月1日以来的天数表示。值为-1表示该功能已禁用。 |
4 | 0 | 可以更改密码的天数。 0表示可以随时更改密码。 |
5 | 99999 | 几天后必须更改密码。 99999表示该帐户没有过期,因此密码可以保存很多年。 |
6 | 7 | 密码过期前的警告天数。演出7天 |
7 | 帐户过期后可以保留的天数,然后完全禁用/停用。 | |
8 | 自1970年1月1日以来,已禁用帐户的天数 |
这就是在Linux中创建和查看用户帐户信息的容易程度。
我们在本教程中使用的命令支持其他许多命令行选项。确保检查每个单独命令的手册页,以获得有关这些选项的全面说明。
这标志着我们指南的结尾,说明了如何在Linux中使用useradd / adduser命令创建用户帐户。
参考
- man useradd
- man adduser
- 男子密码
。