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

)。最直接的流程是:

创建用户:使用

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。

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

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如何创建新用户并设置初始密码

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

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

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

强度优先:强制要求用户设置足够复杂的密码。这包括:长度:至少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如何创建新用户并设置初始密码的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/205011.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
LINUX怎么判断一个文件是否存在_Linux判断文件是否存在方法
上一篇 2025年11月1日 23:23:36
mysql如何理解数据完整性
下一篇 2025年11月1日 23:23:50

相关推荐

  • Matplotlib 地图中多类型图例的创建与优化

    Matplotlib 地图中多类型图例的创建与优化Matplotlib 地图中多类型图例的创建与优化Matplotlib 地图中多类型图例的创建与优化Matplotlib 地图中多类型图例的创建与优化

    本教程旨在解决matplotlib地图可视化中,如何在一个图例中同时展示颜色块(如区域分类)和自定义标记(如特定兴趣点)的问题。文章详细介绍了当传统`patch`对象无法正确显示标记时,如何利用`matplotlib.lines.line2d`创建标记图例句柄,并将其与颜色块图例句柄合并,从而生成一…

    2026年5月10日 用户投稿
    100
  • Golang JSON序列化:控制敏感字段暴露的最佳实践

    本教程探讨golang中如何高效控制结构体字段在json序列化时的可见性。当需要将包含敏感信息的结构体数组转换为json响应时,通过利用`encoding/json`包提供的结构体标签,特别是`json:”-“`,可以轻松实现对特定字段的忽略,从而避免敏感数据泄露,确保api…

    2026年5月10日
    000
  • 比特币新手教程 比特币交易平台有哪些

    比特币是一种去中心化的数字货币,基于区块链技术实现点对点交易,具有匿名性、有限发行和不可篡改等特点;新手可通过交易所购买,P2P交易获得比特币,常用平台包括Binance、OKX和Huobi;交易流程包括注册账户、实名认证、绑定支付方式、充值法币并下单购买,可选择市价单或限价单;比特币存储方式有交易…

    2026年5月10日
    000
  • RichHandler与Rich Progress集成:解决显示冲突的教程

    在使用rich库的`richhandler`进行日志输出并同时使用`progress`组件时,可能会遇到显示错乱或溢出问题。这通常是由于为`richhandler`和`progress`分别创建了独立的`console`实例导致的。解决方案是确保日志处理器和进度条组件共享同一个`console`实例…

    2026年5月10日
    000
  • 《魔兽世界》将于6月11日开启国服回归技术测试

    《魔兽世界》将于6月11日开启国服回归技术测试《魔兽世界》将于6月11日开启国服回归技术测试《魔兽世界》将于6月11日开启国服回归技术测试《魔兽世界》将于6月11日开启国服回归技术测试

    《%ign%ignore_a_1%re_a_1%》官方宣布,将于6月11日开启国服回归技术测试,时间为7天,并称可以在6月内正式开服,玩家们可以访问官网下载战网客户端并预下载“巫妖王之怒”客户端,技术测试详情见下图。 WordAi WordAI是一个AI驱动的内容重写平台 53 查看详情 以上就是《…

    2026年5月10日 用户投稿
    200
  • 如何在HTML中插入表单元素_HTML表单控件与输入类型使用指南

    HTML表单通过标签构建,包含action和method属性定义数据提交目标与方式,常用input类型如text、password、email等适配不同输入需求,配合label、required、placeholder提升可用性,结合textarea、select、button等控件实现完整交互,是…

    2026年5月10日
    000
  • 深入理解 Express.js 中 next() 参数的作用与中间件机制

    本文深入探讨 express.js 中间件函数中的 `next()` 参数。它负责将控制权传递给请求-响应周期中的下一个中间件或路由处理程序。文章将详细解释 `next()` 的工作原理、中间件的注册与执行顺序,以及不正确使用 `next()` 可能导致请求挂起的风险,并通过代码示例和实际应用场景,…

    2026年5月10日
    000
  • Python命令怎样使用profile分析脚本性能 Python命令性能分析的基础教程

    使用Python的cProfile模块分析脚本性能最直接的方式是通过命令行执行python -m cProfile your_script.py,它会输出每个函数的调用次数、总耗时、累积耗时等关键指标,帮助定位性能瓶颈;为进一步分析,可将结果保存为文件python -m cProfile -o ou…

    2026年5月10日
    000
  • 使用 WebCodecs VideoDecoder 实现精确逐帧回退

    本文档旨在解决在使用 WebCodecs VideoDecoder 进行视频解码时,实现精确逐帧回退的问题。通过比较帧的时间戳与目标帧的时间戳,可以避免渲染中间帧,从而提高用户体验。本文将提供详细的解决方案和示例代码,帮助开发者实现精确的视频帧控制。 在使用 WebCodecs VideoDecod…

    2026年5月10日
    000
  • c++如何实现UDP通信_c++基于UDP的网络通信示例

    UDP通信基于套接字实现,适用于实时性要求高的场景。1. 流程包括创建套接字、绑定地址(接收方)、发送(sendto)与接收(recvfrom)数据、关闭套接字;2. 服务端监听指定端口,接收客户端消息并回传;3. 客户端发送消息至服务端并接收响应;4. 跨平台需处理Winsock初始化与库链接,编…

    2026年5月10日
    100
  • html5怎么画实线_HTML5用CSS border-style:solid画元素实线边框【绘制】

    可通过CSS的border-style属性设为solid添加实线边框:一、内联样式用border:2px solid #000;二、内部样式表统一设置如div{border:1px solid #333};三、外部CSS文件定义.my-box{border:3px solid red}并引入;四、单…

    2026年5月10日
    200
  • 谷歌浏览器如何截图 谷歌浏览器页面截图技巧

    谷歌浏览器如何截图 谷歌浏览器页面截图技巧谷歌浏览器如何截图 谷歌浏览器页面截图技巧谷歌浏览器如何截图 谷歌浏览器页面截图技巧谷歌浏览器如何截图 谷歌浏览器页面截图技巧

    使用谷歌浏览器的开发者工具截图步骤:1. 按ctrl+shift+i(windows/linux)或cmd+option+i(mac)打开开发者工具。2. 点击右上角三个点,选择”更多工具”,再选择”截图”。3. 选择截取整个页面。推荐的谷歌浏览器扩展…

    2026年5月10日 用户投稿
    100
  • JS如何实现迭代器?迭代器协议

    JavaScript中实现迭代器需遵循可迭代协议和迭代器协议,通过定义[Symbol.iterator]方法返回具备next()方法的迭代器对象,从而支持for…of和展开运算符;该机制统一了数据结构的遍历接口,实现惰性求值,适用于自定义对象、树、图及无限序列等复杂场景,提升代码通用性与…

    2026年5月10日
    000
  • Golang空接口如何应用在项目中

    空接口可用于接收任意类型值,常见于日志函数、通用数据结构、JSON动态解析及配置驱动逻辑,提升代码灵活性,但需配合类型断言确保安全,避免滥用以降低维护成本。 空接口 interface{} 在 Go 语言中是一个非常灵活的类型,它可以存储任何类型的值。虽然它牺牲了一部分类型安全,但在实际项目中合理使…

    2026年5月10日
    100
  • 使用 Pydantic v2 实现条件性必填字段

    本文介绍了如何在 Pydantic v2 模型中实现条件性必填字段。通过自定义验证器,可以根据模型中其他字段的值来动态地控制某些字段是否为必填项,从而满足 API 交互中数据验证的复杂需求。本文提供了一个具体的示例,展示了如何确保模型中至少有一个字段被赋值。 在 Pydantic v2 中,虽然没有…

    2026年5月10日
    000
  • React组件中动态属性值的管理与同步:利用状态实现受控组件

    本教程旨在解决react组件中动态属性值同步使用的问题。我们将探讨如何利用react的`usestate` hook来管理组件内部状态,从而实现一个属性的值动态地影响另一个属性,并构建出可预测、易于维护的受控组件。文章将通过具体代码示例,详细阐述从初始化状态到处理状态更新的完整过程,并强调受控组件在…

    2026年5月10日
    000
  • 如何讲html和css_讲解HTML与CSS结合使用基础【基础】

    需将HTML与CSS结合使用以实现网页结构与样式的分离:HTML定义标题、段落等语义结构,CSS控制颜色、字体等外观;可通过内联样式、内部样式表或外部CSS文件引入样式,并利用类选择器和ID选择器精准应用。 如果您希望网页不仅展示内容,还能具备基本的样式和结构布局,则需要将HTML与CSS结合使用。…

    2026年5月10日
    100
  • JavaScript计算器开发:解决数值显示与初始化问题

    本教程深入探讨了使用JavaScript构建计算器时常见的数值显示异常问题,特别是由于类属性未初始化导致的`Cannot read properties of undefined`错误。我们将详细分析问题根源,并通过在构造函数中调用初始化方法来解决该问题,同时优化显示逻辑,确保计算器功能稳定且界面显…

    2026年5月10日
    000
  • 高通预热 2023 骁龙峰会:以AI为主题,10 月 25-26 日举行

    高通预热 2023 骁龙峰会:以AI为主题,10 月 25-26 日举行高通预热 2023 骁龙峰会:以AI为主题,10 月 25-26 日举行高通预热 2023 骁龙峰会:以AI为主题,10 月 25-26 日举行高通预热 2023 骁龙峰会:以AI为主题,10 月 25-26 日举行

    【环球网科技综合报道】10月17日消息,高通今日对 2023 骁龙峰会进行了预热,本次大会将以 %ign%ignore_a_1%re_a_1% 为主题,届时骁龙 8 gen 3 处理器也很大可能在本届峰会亮相。 在临近活动召开之日,相关业内人士也透露了高通骁龙8Gen3跑分及规格。据悉,高通骁龙8 …

    2026年5月10日 用户投稿
    000
  • Circle为何在凌晨向Solana新增铸造5亿枚USDC?USDC增发原因与对SOL生态影响深度解析

    近日,链上数据显示,Circle 在凌晨向 Solana 链新增铸造了 5亿枚USDC。此次大规模增发引起市场关注,投资者需要了解背后的原因以及对 Solana 生态的潜在影响。 USDC增发原因分析 增发 USDC 的主要原因可能包括: 满足市场需求:近期 Solana 上交易活动活跃,USDC …

    2026年5月10日
    000

发表回复

登录后才能评论
关注微信