01 Linux基础 70 用户管理 01 新建用户useradd和passwd
目录:
useradd
命令- 如何在Linux中创建新用户
- 如何添加新用户和创建主目录
- 创建具有特定主目录的用户
- 创建具有特定用户ID的用户
- 创建具有特定组ID的用户
- 创建用户并分配多个组
- 使用特定的登录外壳创建用户
- 创建具有自定义注释的用户
- 创建具有到期日期的用户
- 创建系统用户
- 更改默认的useradd值
- 结论
Linux是一个多用户系统,这意味着多个人可以同时与同一个系统进行交互。 作为系统管理员,您有责任通过创建和删除用户并将其分配给不同的组来管理系统的用户和组。
在Linux中,您可以创建一个用户帐户,并使用
useradd
命令将该用户分配给不同的组。
useradd
是一个低级实用程序,Debian和Ubuntu用户将更可能使用更友好的adduser命令。
,我们将讨论如何使用
useradd
命令并探讨其选项。
useradd
命令
useradd
命令的常规语法如下:
useradd USERNAME
为了能够使用
useradd
命令并创建新用户,您需要以root用户或具有sudo访问权限的用户身份登录。
调用时,
useradd
使用命令行上指定的选项以及
/etc/default/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
create
--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
在主目录中,用户可以编写,编辑和删除文件和目录。
创建具有特定主目录的用户
例如,要创建一个名为
username
且主目录为
/opt/username
的新用户,您需要运行以下命令:
sudo useradd -m -d /opt/username username
创建具有特定用户ID的用户
在Linux和类似Unix的操作系统中,用户由唯一的UID和用户名标识。
用户标识符(UID)是Linux系统分配给每个用户的唯一正整数。 UID与其他访问控制策略一起用于确定用户可以对系统资源执行的操作的类型。
默认情况下,创建新用户时,系统会在
login.defs
文件中指定的用户ID范围内分配下一个可用的UID。
使用
-u
(--uid)选项创建具有特定UID的用户。 例如,要创建一个名为
username
且UID为
1500
的新用户,您将输入:
sudo useradd -u 1500 username
您可以使用
id
命令验证用户的UID:
id -u username
创建具有特定组ID的用户
Linux组是组织单位,用于组织和管理Linux中的用户帐户。 组的主要目的是为一组可以在组内用户之间共享的给定资源定义一组特权,例如读取,写入或执行权限。
创建新用户时,
useradd
命令的默认行为是创建一个名称与用户名相同且GID与UID相同的组。
使用
-g
(--
--gid
)选项创建具有特定初始登录组的用户。 您可以指定组名或GID号。 组名或GID必须已经存在。
例如,要创建一个名为
username
的新用户并将登录组设置为
users
输入:
sudo useradd -g users username
要验证用户的GID,请使用
id
命令:
id -gn username
创建用户并分配多个组
Linux操作系统中有两种类型的组:主要组和次要或补充组。 每个用户可以完全属于一个主要组,零个或多个次要组。
-G
(--
--groups
)选项允许您指定用户将成为成员的补充组的列表。
以下命令将创建一个名为
username
的新用户,该
username
具有主要组
users
以及次要组
wheel
和
docker
。
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
文件中指定的登录shell。 在某些Linux发行版(例如Ubuntu 18.04)中,默认shell设置为
/bin/sh
而在其他Linux发行版中,其默认设置为
/bin/bash
。
-s
(--
--shell
)选项允许您指定新用户的登录shell。
例如,使用
/usr/bin/zsh
创建一个名为
username
的新用户作为登录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
文件中指定的系统用户ID范围中选择的,该范围不同于普通用户的范围。
更改默认的useradd值
可以使用
-D
,--
--defaults
选项或通过手动编辑
/etc/default/useradd
文件中的值来查看和更改默认的useradd选项。
要查看当前的默认选项,请输入:
useradd -D
输出将如下所示:
GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/sh SKEL=/etc/skel CREATE_MAIL_SPOOL=no
假设您要将默认登录Shell从
/bin/sh
更改为
/bin/bash
。 为此,请指定新的外壳,如下所示:
sudo useradd -D -s /bin/bash
您可以通过运行以下命令来验证是否更改了默认外壳程序值:
sudo useradd -D | grep -i shell
结论
在本教程中,我们向您展示了如何使用
useradd
命令创建新的用户帐户。 相同的说明适用于任何Linux发行版,包括Ubuntu,CentOS,RHEL,Debian,Fedora和Arch Linux。
如有任何疑问,请随时发表评论。
终端用户组