专栏首页Opensource翻译专栏Linux useradd命令简介【Linux-Command line】

Linux useradd命令简介【Linux-Command line】

使用useradd命令添加用户(并根据需要自定义其帐户)。

图片来源:Opensource.com

添加用户是任何计算机系统上最基本的练习之一。 本文重点介绍如何在Linux系统上执行此操作。

在开始之前,我要提及三个基本原则。 首先,与大多数操作系统一样,Linux用户需要一个帐户才能登录。本文专门介绍本地帐户,而不是LDAP等网络帐户。 其次,帐户既有名称(称为用户名)又有数字(称为用户ID)。 第三,通常将用户分组。 组也有一个名称和组ID。

如你所料,Linux包含一个用于添加用户的命令行实用程序, 它称为useradd。 您还可以找到命令adduser。 为了方便起见,许多发行版都将此符号链接添加到useradd命令。

让我们看一下useradd

|注意:本文描述的默认设置反映了Red Hat Enterprise Linux 8.0中的默认设置。在其他Linux发行版或其他Unix操作系统(例如FreeBSD或Solaris)中,你可能会发现这些文件以及某些默认值的细微差别。

默认行为

useradd的基本用法非常简单:只需提供用户名即可添加用户。

在此示例中,useradd命令创建一个名为sonny的帐户。 还创建了一个具有相同名称的组,并将sonny放入其中以用作主要组。 根据配置文件/ etc / default / useradd和/etc/login.defs中的默认值和值,应用例如language和shell的其他参数。 对于单个个人系统或小型单服务器业务环境而言,此举通常足够了。

尽管上面的两个文件控制useradd的行为,但是用户信息存储在/ etc目录中的其他文件中,在本文中我将始终引用该文件。

自定义行为

命令行允许在管理员需要更好地控制(例如指定用户的ID号)时进行自定义。

用户和组ID号

默认情况下,useradd尝试对用户ID(UID)和主要组ID(GID)使用相同的数字,但是并无保证。 尽管UID和GID不必匹配,但管理员在进行匹配时更易于管理。

我只是要说明的情况。 假设这次我为Timmy添加另一个帐户。 比较两个用户(sonny和timmy),结果表明用户和他们各自的主要组都是使用getent命令创建的。

遗憾的是,用户的UID和主GID都不匹配。 因为默认行为是将下一个可用的UID分配给用户,然后尝试将相同的号码分配给主要组。 但是,如果已经使用了该编号,则将下一个可用的GID分配给该组。 为了解释发生的情况,我假设一个存在一个GID为1001的组,并输入命令进行确认。

ID为1001的组簿导致GID减少了一个。 这是一个示例,表明系统管理员需要对用户创建过程进行更多控制。 若要解决此问题,我必须首先确定下一个将匹配的可用用户和组ID。 命令“getent group”和“getent passwd”将有助于确定下一个可用数字。 可以使用“-u”参数传递该数字。

指定ID有另一个很好的理由,针对访问远程系统上的文件的用户,可使用网络文件系统(NFS)。 当所有客户端和服务器系统都具有为给定用户配置的相同ID时,NFS易于管理。 我在名为using autofs to mount NFS shares的文章中对此进行了更详细的介绍。

更多定制

但是,其他帐户参数常常需要被指定给用户。 以下简短示例是你可能需要使用的常见定制。

comment

comment选项是纯文本字段,用于使用“-c”参数提供简短描述或其他信息。

Groups

可以为一个用户分配一个主要组和多个次要组。 “-g”参数指定主要组的名称或GID。 如果未指定,则“useradd”将创建一个与用户同名的主组(如上所示)。 “-G(大写)”参数用于传递用户即将放入的以逗号分隔的组列表; 这些被称为次要群体。

主目录

“useradd”的默认行为是在“/ home”中创建用户的主目录。 但是,可以使用以下参数覆盖主目录的不同方面。“ -b”设置可以放置用户主页的另一个目录。 例如,使用“/ home2”而不是默认的“/ home”。

“-d”允许你使用与用户不同的名称指定主目录。

skeleton目录

“-k”指示要用“/ etc / skel”目录中的任何文件填充新用户的新主目录。 这些通常是外壳程序配置文件,但是它们可以是系统管理员希望提供给所有新用户的任何文件。

Shell

“-s”参数可用于指定外壳。 如果未指定其他任何内容,则使用默认值。 例如,以下在默认配置文件中定义了shell bash,但是Wally请求了zsh。

安全

安全性是用户管理的重要组成部分,因此useradd命令有多个可用选项。 可以使用“-e”参数为用户帐户指定有效日期,格式为年-月-日(YYYY-MM-DD)。

如果密码过期,也可以自动禁用帐户。 “-f”参数可设置密码过期后至禁用帐户之前的天数。 Zero是立即生效的。

现实实例

实际上,在创建新用户帐户时可以使用其中几个自变量。 例如,如果需要为Perry创建一个帐户,则可以使用以下命令:

请参阅以上各节以了解每个选项。 使用以下方法验证结果:

一些最终建议

对于任何Unix(不仅仅是Linux)管理员,useradd命令都是“must know”。 了解它的所有选项很重要,因为你想一次性就顺利完成用户创建。 这意味着要有一个经过深思熟虑的命名约定,其中包括为整个企业(而不是单个系统)的用户保留的专用UID / GID范围,尤其是为成长中的组织工作时。

原文链接:https://opensource.com/article/19/10/linux-useradd-command

原文作者:Alan Formy-Duval

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Linux chgrp和newgrp命令简介【Linux-Command line】

    在近期的文章中,我介绍了chown命令,该命令用于修改系统上文件的所有权。 回想一下,所有权是分配给对象的用户和组的组合。 chgrp和newgrp命令为管理需...

    QRosie
  • Linux tac命令入门【Linux-Command line】

    tac命令本质上是cat命令,但其目的是反向连接文件。 像cat一样,如果没有提供输出文件,它也具有方便的后备模式,可打印到标准输出(STDOUT),使其成为比...

    QRosie
  • 常用Linux 命令速查表【Linux-Command line】

    常用Linux 命令速查表——下载我们的新版Linux命令速查表,以便执行常见任务

    QRosie
  • Linux 命令(128)—— useradd 命令

    如果在创建用户时没有指定密码的话,用户的默认密码是不可用的。所以 useradd 一般与 passwd 命令成对使用,在创建用户后给用户设置密码。

    Dabelv
  • 显示硬件信息的Linux命令【Linux-Command line】

    可能有很多原因导致你需要查找有关计算机硬件的详细信息。 例如,如果需要帮助修复某些问题并在在线论坛上发布请求,人们会立即询问你有关计算机的详细信息。 再者,如果...

    QRosie
  • 每天学一个 Linux 命令(9):useradd/userdel

    https://github.com/mingongge/Learn-a-Linux-command-every-day

    民工哥
  • 在命令行进行sort排序【Linux-Command line】

    使用sort命令重组数据,可以从Linux,BSD或Mac终端以对你有意义的格式进行。

    QRosie
  • 002.MongoDB社区版安装

    提示:奇数次要版本(例如3.5)是开发版本,不适合生产使用。本实验采用最新4.0版本,更多repo配置参考见:https://repo.mongodb.org/...

    木二
  • Linux内核实战(三)- 学学基本命令

    Linux操作系统有很多功能,其中最简单和直接的方式就是命令行(Command Line)。

    JavaEdge

扫码关注云+社区

领取腾讯云代金券