5

Linux useradd 命令创建用户

 1 year ago
source link: https://www.myfreax.com/how-to-create-users-in-linux-using-the-useradd-command/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Linux useradd 命令创建用户

Linux useradd命令创建用户

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

在 Linux,您可以使用 useradd 命令创建用户帐户并将用户分配到不同的组。useradd是所有 Linux 发行版都可以使用的命令。

但 Debian 和 Ubuntu 用户可以使用更友好的 adduser 命令。本教程介绍 useradd 命令及其选项。

useradd 命令适用于任何Linux发行版,包括Ubuntu,CentOS,RHEL,Debian,Fedora和Arch Linux。

创建 sudo 用户

为了能够使用 useradd 命令创建用户,您需要以 root 或具有 sudo 权限的用户登录到 Linux 系统。

如果你的计算机运行的是基于 RedHat 的 Linux 发行版,例如如 CentOS , Fedora ,可以参考我们教程如何在 CentOS 创建 sudo 用户

如果你的计算机运行的是基于 Debian 的 Linux 发行版,例如 Linux Minit,Ubuntu,elementary,可参考我们的教程如何在 Debian 创建 sudo 用户

useradd 命令

在讨论如何使用 useradd 命令之前,让我们先回顾一下基本语法。useradd 命令语法形式是 useradd [OPTIONS] USERNAME

其中 USERNAME 是要创建用户的用户名,OPTIONS 是 useradd 命令的选项,是一个可选的参数。

在运行 useradd 命令创建用户时,useradd 命令将会使用命令行中指定的选项以及 /etc/default/useradd 文件指定的默认值创建用户帐户。

不同的 Linux 发行版 /etc/default/useradd 文件定义的变量会有差异。如果在没有任何选项运行 useradd 命令时,可能会在不同的 Linux 发行版得到不同的结果。

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

Linux 创建用户

使用useradd 命令最简单的形式是不指定任何选项,useradd 命令将会读取 /etc/default/useradd 文件指定的默认值创建用户帐户。

useradd 命令会在/etc/passwd/etc/shadow, /etc/group/etc/gshadow文件加入要创建用户的配置信息。

useradd 命令默认不设置用户登录密码。如想要 useradd 命令创建的用户可以使用密码登录,则需要使用 passwd 命令设置用户密码。

在运行 passwd 命令设置用户密码时,系统将提示您输入并确认密码。确保使用强密码。在输入密码时密码是不可见的,完成输入后,只需要回车即可。

sudo useradd myfreax
sudo passwd myfreax
Changing password for user myfreax.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

创建用户家目录

在大多数 Linux 发行版,在使用 useradd 命令创建新用户帐户时,不会创建用户家目录。但可以指定 useradd 命令的 -m 选项创建用户家目录。

在创建用户的家目录时,useradd 命令将会从 /etc/skel 目录复制文件到用户的家目录。并作为用户基本配置信息。

除了在 /home/ 目录创建用户家目录外,也可以指定在目录创建用户家目录,/home目录是默认的创建用户家目录的路径。

要指定其它目录创建用户家目录可以使用 useradd 命令的 d/--home 选项改变这个默认值。

当你完成用户的创建时,可使用 ls 命令列出用户家目录的文件,你将会看到初始化用户时的配置文件。

在本教程仅包含 bash 的配置文件。具体会根据发行版,以及你安装的软件存在差异。最后,如果需要让用户可登录,记得运行 passwd 命令为你的创建的用户设置密码。

#useradd -m -d /opt/username myfreax #-d指定用户家目录
sudo useradd -m myfreax
ls -la /home/myfreax/
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

指定用户 ID

在 Linux/Unix 操作系统,用户由唯一的UID和用户名组成。用户标识符UID是 Linux 系统为每个用户分配的唯一正整数。

UID 用于访问控制策略确定用户是否可以对系统资源执行操作。如果你需要在创建用户时指定用户 UID,可以使用 useradd 命令的-u/--uid选项指定。

默认情况下,在创建用户时 useradd 命令会从 login.defs 文件读取用户 ID 范围并指定下一个可用的 UID 。除非有特别的需求,不建议手动指定用户的 UID。

sudo useradd -u 1500 username 命令将会创建用户 myfreax,指定UID为 1500,当创建用户后,可以运行 id 命令验证用户的UID 。

sudo useradd -u 1500 username
id -u username

指定组 ID

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

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

要指定用户要加入的组 ID,可以使用 useradd 的 -g/--gid 选项可以指定用户的所属组。

也可以指定组名称或 GID。指定的组名称或 GID 必须已经存在。-g 选项的组将会成为用户的主要组。

sudo useradd -g admin myfreax 命令创建用户 myfreax,并指定加入的组是admin,完成用户创建后可以运行 id 命令验证用户的 GID或者组的名称。

sudo useradd -g admin myfreax
id myfreax

创建用户加入多个组

Linux 操作系统有两种类型的组,分别是主要组和次要组。每个用户可以属于一个主要组和零个或多个次要组。

useradd 命令的 -G/--groups 选项允许你指定用户次要组,可以同时为创建的用户指定多个次要组,用户将成为这些次要组的成员。

sudo useradd -g users -G wheel,developers myfreax 命令创建用户 myfreax 并指定主要组是 users 和次要组是 wheel 和 docker。

sudo useradd -g users -G wheel,docker myfreax
id myfreax
uid=1002(username) gid=100(users) groups=100(users),10(wheel),993(docker)

创建用户并指定登录 Shell

默认情况下,创建的用户的登录 shell 在 /etc/default/useradd 文件指定。可以使用 useradd 命令的 -s/--shell 选项指定用户的登录 Shell。

在某些 Linux 发行版(如Ubuntu 18.04),默认的登录 Shell 设置为 /bin/sh 而在其他的版本则设置为 /bin/bash。

要查看用户的默认的登录 Shell,可以运行 grep 命令grep myfreax /etc/passwd搜索 /etc/passwd 文件,myfreax 是用户名。

useradd -s /usr/bin/zsh myfreax 命令创建用户 myfreax 并登录 Shell是 /usr/bin/zsh。

useradd -s /usr/bin/zsh myfreax
grep myfreax /etc/passwd
myfreax:x :1001:1001::/home/myfreax:/usr/bin/zsh

创建用户并设置联系信息/注释

useradd 命令的 -c/--comment 选项允许你在创建用户的同时添加一个简短的说明。通常时用户的全名或联系信息作为注释。

注释字段也称为 GECOS,它保存在 /etc/passwd 文件。可以往注释中添加任何内容。当创建用户后你可使用 grep 命令查看用户在 /etc/passwd 文件注释内容。

sudo useradd -c "Test User Account" myfreax 命令创建用户 myfreax 并使用 Test User Account 作为注释。

sudo useradd -c "Test User Account" myfreax
sudo grep myfreax /etc/passwd
myfreax:x :1001:1001:Test User Account:/home/username:/bin/sh

指定到期日期创建用户

useradd 命令的 -e/--expiredate 选项允许你指定用户到期时间。此选项对于创建临时帐户很有用。

用户到期/过期时间格式,必须使用 YYYY-MM-DD 格式指定日期。可以使用 chage 命令查看用户的到期日期。

sudo useradd -e 2022-1-22 myfreax 命令创建用户 myfreax 并设置用户的到期时间为 2022 年 1 月 22 日。

sudo useradd -e 2022-1-22 myfreax
sudo chage -l myfreax
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

创建系统用户

系统与普通用户之间没有真正的差异。通常,在安装操作系统和软件时会创建系统用户。

在某些情况下,您可能需要为自定义的应用程序创建系统用户。useradd 命令的-r/--system 选项允许你创建系统用户。

系统用户创建时没有到期日期。它们的 UID 不是从 login.defs 文件读取。而是在系统用户 ID 范围选择,该范围不同于普通用户使用的范围。

sudo useradd -r username

修改的默认值

useradd 命令的默认选项,可以使用 useradd 命令的 -D/--defaults 选项查看或者编辑。查看 useradd 命令的默认选项很简单,运行命令useradd -D即可查看默认选项。

也可以运行 cat 命令查看 /etc/default/useradd 文件内容确定 useradd 命令的默认选项。或手动编辑 /etc/default/useradd 文件的值来修改默认的 useradd 命令选项。

假设要将用户的默认登录 Shell 从 /bin/sh 修改为 /bin/bash。可以使用 useradd 命令的 -s 选项为用户指定用户的默认登录 Shell,

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

至此,你已经了解如何在 Linux 系统使用 useradd 命令创建用户帐户以及命令的常用选项。

useradd 命令适用于任何Linux发行版,包括Ubuntu,CentOS,RHEL,Debian,Fedora和Arch Linux。如果您有任何疑问,请随时发表评论。

微信公众号

支付宝打赏

myfreax 淘宝打赏

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK