前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux useradd命令简介【Linux-Command line】

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

作者头像
QRosie
修改2019-11-18 11:58:26
1.1K0
修改2019-11-18 11:58:26
举报

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

图片来源:Opensource.com
图片来源: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范围,尤其是为成长中的组织工作时。

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系外文翻译前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 默认行为
  • 自定义行为
    • 用户和组ID号
    • 更多定制
      • comment
        • Groups
          • 主目录
            • skeleton目录
              • Shell
                • 安全
                • 现实实例
                • 一些最终建议
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档