Linux如何创建新用户并设置初始密码

创建新用户并设初始密码需用useradd加passwd命令,如sudo useradd -m -s /bin/bash devuser创建用户,sudo passwd devuser设置密码;通过sudo usermod -aG sudo devuser赋予sudo权限;密码策略应包含长度、复杂度、定期更换及首次登录强制修改;UID和GID是系统识别用户和组的唯一标识,用于文件权限管理和跨系统一致性。

Linux如何创建新用户并设置初始密码

在Linux系统里,创建一个新用户并给他设置一个初始密码,这事儿说起来简单,其实就是两个核心命令:

useradd

负责创建用户,

passwd

用来设置密码。这两个组合起来,就能让新用户顺利登录了。

解决方案

要创建一个新用户并设置其初始密码,我们通常需要使用管理员权限(

sudo

root

)。最直接的流程是:

  1. 创建用户:使用

    useradd

    命令。为了让新用户有一个家目录和默认的shell,我通常会加上

    -m

    -s /bin/bash

    选项。

    sudo useradd -m -s /bin/bash 新用户名

    比如,我想创建一个叫

    devuser

    的用户:

    sudo useradd -m -s /bin/bash devuser

    这里

    -m

    会自动创建

    /home/devuser

    这个家目录,

    -s /bin/bash

    则指定了登录后默认使用的shell是Bash。不加这些,用户也能创建,但体验会差一些,可能需要手动配置家目录和shell。

  2. 设置初始密码:创建完用户后,立即使用

    passwd

    命令为该用户设置密码。

    sudo passwd 新用户名

    接着系统会提示你输入两次密码。

    sudo passwd devuser
    New password: Retype new password: passwd: password updated successfully

    这样,

    devuser

    这个新用户就创建好了,并且拥有了一个可以登录的密码。

Linux如何创建新用户并设置初始密码

新用户创建后如何赋予sudo权限?

创建一个普通用户通常是第一步,但很多时候,我们希望这个新用户也能执行一些管理员任务,而不是每次都切换到

root

。这就涉及到给用户赋予

sudo

权限了。这事儿我个人觉得挺重要的,毕竟日常操作里,

sudo

用得比直接

su -

root

要频繁且安全得多。

在大多数基于Debian的系统(如Ubuntu)上,

sudo

权限是通过将用户加入到

sudo

用户组来实现的。而在一些基于Red Hat的系统(如CentOS、Fedora)上,这个组可能叫做

wheel

赋予

sudo

权限的命令是

usermod

sudo usermod -aG sudo 新用户名

这里的

-a

表示“追加”(append),

-G

表示指定组。所以

-aG sudo

就是把用户追加到

sudo

组里。

举个例子,给刚才的

devuser

赋予

sudo

权限:

sudo usermod -aG sudo devuser

执行完这条命令后,

devuser

需要注销当前会话并重新登录,或者直接启动一个新的终端会话,才能使

sudo

权限生效。之后,

devuser

就可以通过在命令前加上

sudo

来执行需要管理员权限的操作了。

当然,还有更底层、更精细的

sudo

配置方法,就是直接编辑

/etc/sudoers

文件,但这通常通过

visudo

命令来完成,以防止语法错误导致系统无法使用

sudo

。我一般不建议新手直接手动编辑这个文件,因为一旦出错,修复起来会比较麻烦。

usermod

命令简单直接,适合绝大多数场景。

Linux如何创建新用户并设置初始密码

集简云

软件集成平台,快速建立企业自动化与智能化

Linux如何创建新用户并设置初始密码21

查看详情 Linux如何创建新用户并设置初始密码

Linux如何创建新用户并设置初始密码

用户密码策略有哪些最佳实践?

密码安全,这真的是老生常谈,但又不得不提。我见过太多因为密码太弱导致的安全问题了,简直是防不胜防。所以,为用户设置密码时,除了能用之外,更重要的是要“安全”。

以下是我在实践中总结的一些密码策略最佳实践:

  • 强度优先:强制要求用户设置足够复杂的密码。这包括:
    • 长度:至少12个字符,最好是16个或更多。越长越难猜。
    • 字符类型:包含大小写字母、数字和特殊符号(如
      !@#$%^&*

      )。

    • 避免常用词和个人信息:生日、名字、电话号码、字典词汇,这些都是黑客最爱尝试的。
  • 定期更换:虽然有些观点认为定期更换密码反而会让用户选择更弱的密码,但对于关键系统,我还是倾向于设置一个合理的密码过期策略,比如每90天强制更换一次。这可以通过
    chage

    命令来管理。

    sudo chage -M 90 devuser

    这条命令会设置

    devuser

    的密码在90天后过期。

  • 唯一性:教育用户不要在多个系统或服务中使用相同的密码。一个地方泄露,可能导致“一锅端”。
  • 禁用弱密码:在系统层面,可以通过PAM模块(如
    pam_cracklib

    pam_pwquality

    )来强制执行密码复杂度规则,防止用户设置过于简单的密码。这通常需要在

    /etc/pam.d/common-password

    或类似文件中进行配置。比如,可以设置密码最小长度、所需不同字符类型的数量等。

  • 初始密码策略:新用户创建后,可以设置一个临时密码,并强制用户在首次登录时修改。这可以通过
    passwd -e 新用户名

    来实现,它会立即标记用户的密码为过期状态。

    sudo passwd -e devuser

    这样,

    devuser

    在第一次登录时,系统会强制他修改密码。这能有效避免初始密码被长期使用。

这些策略虽然可能给用户带来一点点“不便”,但从系统安全的角度看,这些“不便”是完全值得的。毕竟,安全从来都不是免费的午餐。

Linux如何创建新用户并设置初始密码

Linux中的用户ID(UID)和组ID(GID)有什么作用?

在Linux系统里,用户和组不仅仅是名字那么简单,它们背后都有一个独特的数字标识符,也就是用户ID(UID)和组ID(GID)。这俩玩意儿,说白了,就是系统用来识别谁是谁、谁能干什么的“身份证号”。

我个人觉得理解UID和GID是理解Linux权限管理的关键,否则很多时候你看到文件权限是

rwx

,但具体到哪个用户或组,就容易混淆。

  • 用户ID(UID)

    • 每个用户在Linux系统中都有一个唯一的UID。这个ID是系统内部识别用户的真正依据,而不是用户名。用户名只是给人看的。
    • UID通常从0开始。
      root

      用户的UID永远是0,这是特权用户的象征。

    • 系统用户(如
      daemon

      ,

      bin

      ,

      nobody

      等)通常有较低的UID(1-999,具体范围取决于发行版),它们是系统服务运行所必需的,一般不能用于登录。

    • 普通用户通常从1000或500开始(取决于发行版)。当我们用
      useradd

      创建一个新用户时,系统会自动分配一个当前可用的、未被占用的UID。

    • UID主要用于文件和目录的权限管理。当你创建一个文件时,它的所有者就是你的UID。
  • 组ID(GID)

    • 类似UID,每个组也有一个唯一的GID。
    • 当一个用户被创建时,通常会同时创建一个与用户名同名的新组,并将该用户作为该组的唯一成员,这个组就是用户的“主组”(primary group)。这个组的GID就是用户的“主GID”。
    • 用户也可以是其他组的成员,这些组称为“附加组”(supplementary groups)。
    • GID同样在文件和目录权限管理中扮演重要角色。文件或目录除了有所有者(UID)外,还有所属组(GID)。

它们的作用体现在哪里?

最核心的作用就是权限管理。 当你查看一个文件的权限时,比如

ls -l

-rw-r--r-- 1 devuser devuser 0 Nov 2 10:00 test.txt

这里的第一个

devuser

就是文件所有者(对应UID),第二个

devuser

就是文件所属组(对应GID)。系统根据这些ID来判断哪个用户或哪个组有权限读、写、执行这个文件。

另一个作用是跨系统一致性。如果你在不同的Linux系统间复制文件或同步用户,只要UID和GID保持一致,文件的所有权和权限通常也能保持正确,即使用户名在不同系统上可能不完全相同。当然,这在实际操作中需要注意,否则可能会导致权限混乱。

这些ID信息都存储在

/etc/passwd

/etc/group

这两个核心文件中。

/etc/passwd

记录了用户的UID、主GID、家目录和shell等信息;

/etc/group

则记录了各个组的GID以及哪些用户是该组的成员。了解这些,能让你在排查权限问题时更有方向感。

linux word centos app ubuntu linux系统 red bash 标识符 append linux ubuntu centos debian

上一篇
下一篇