如何使用 passwd 和 adduser 在 Linux VPS 上管理密码

2023-11-18

介绍

密码和身份验证是每个用户在 Linux 环境中工作时必须处理的概念。这些主题涵盖许多不同的配置文件和工具。

在本指南中,我们将探索一些基本文件,例如“/etc/passwd”和“/etc/shadow”,以及用于配置身份验证的工具,例如名称恰当的“passwd”命令和“adduser”。

我们将使用 Ubuntu 12.04 VPS 来讨论这些主题,但任何现代 Linux 发行版都应该以类似的方式运行。

什么是“/etc/passwd”文件?

我们要查看的第一个文件称为“/etc/密码" 文件,实际上并不存储密码。

曾经,该文件存储了系统上每个用户的哈希密码。但是,出于安全原因,此责任已转移到单独的文件中。

让我们看看什么is在“/etc/passwd”文件中:


less /etc/passwd  

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
. . .  

首先要注意的是,非特权用户可以访问该文件。

系统上的每个人都具有该文件的读取权限。这就是密码信息被移出该文件的原因。

我们来看看文件的格式。

如何读取“/etc/passwd”文件

文件中的每一行包含系统上单个用户的登录信息。其中一些用户可能是为守护程序和后台服务使用而创建的。

看一下一行,看看它包含哪些信息:


root:x:0:0:root:/root:/bin/bash  

信息字段由冒号 (:) 字符分隔。典型的 Linux“/etc/passwd”文件中每行有七个字段:

  1. root: 帐户用户名。
  2. <li><strong>x</strong>: Placeholder for password information.  The password is obtained from the "/etc/shadow" file.</li>
    
    <li><strong>0</strong>: User ID.  Each user has a unique ID that identifies them on the system.  The root user is always referenced by user ID 0.</li>
    
    <li><strong>0</strong>: Group ID.  Each group has a unique group ID.  Each user has a "primary" group that is used as the group by default.  Again, the root group's ID is always 0.</li>
    
    <li><strong>root</strong>: Comment field.  This field can be used to describe the user or user's function.  This can be anything from contact information for the user, to descriptions of the service the account was made for.</li>
    
    <li><strong>/root</strong>: Home directory.  For regular users, this would usually be "/home/<span class="highlight">username</span>".  For root, this is "/root".</li>
    
    <li><strong>/bin/bash</strong>: User shell. This field contains the shell that will be spawned or the command that will be run when the user logs in.</li>	
    

当您使用“adduser" and "useradd”,或者当您安装更多服务时,该文件将会增大。新的用户名信息将添加到该文件的底部。

在大多数情况下,您不必手动编辑此文件。有一些工具可以操作该文件并确保维护正确的语法。

什么是“/etc/shadow”文件?

实际的密码数据存储在名为“/etc/影子".

这实际上并不包含纯文本的密码。相反,它使用密钥派生函数来创建哈希。这就是它存储在文件中的内容。

密钥派生函数基本上是一种算法,当给定相同的输入时,该算法始终会创建特定的哈希值。对身份验证期间给出的密码运行相同的算法,并将该值与该文件中的值进行比较。

请注意,该文件与“/etc/passwd”文件不同,非特权用户无法读取。

root 用户具有读写权限,“shadow”组(包含身份验证所需的用户)具有读取权限。

如何读取“/etc/shadow”文件

输入以下命令打开“/etc/shadow”文件:


sudo less /etc/shadow  

root:$6$mJD3Rsj4$xUa7jru6EEGTXnhwTfTT26/j8M5XiQvUl6UH32cfAWT/6W9iSI5IuIw5OOw4khwrsOHPyMwfCLyayfYiVdhAq0:15952:0:99999:7:::
daemon:*:15455:0:99999:7:::
bin:*:15455:0:99999:7:::
sys:*:15455:0:99999:7:::
sync:*:15455:0:99999:7:::
games:*:15455:0:99999:7:::
man:*:15455:0:99999:7:::
. . .  

与“/etc/passwd”文件一样,每一行定义用户信息,每个字段由冒号 (:) 字符分隔。

Note:上述某些行第二个字段中的星号 (*) 值表示该帐户无法登录。这主要用于服务,是预期行为。

我们再看一下单行:


daemon:*:15455:0:99999:7:::  

这些是“/etc/shadow”文件中定义的字段:

  1. daemon: 帐户用户名。
  2. <li><strong>*</strong>: Salt and hashed password.  You can see what this looks like with the root entry above.
    
    	As noted above, the asterisk signifies that this account cannot be used to log in.</li>
    
    <li><strong>15455</strong>: Last password change.  This value is measured in days from the Unix "epoch", which is January 1, 1970.</li>
    
    <li><strong>0</strong>: Days until password change permitted.  0 in this field means there are no restrictions.</li>
    
    <li><strong>99999</strong>: Days until password change required.  99999 means that there is no limit to how long the current password is valid.</li>
    
    <li><strong>7</strong>: Days of warning prior to expiration.  If there is a password change requirement, this will warn the user to change their password this many days in advance.</li>
    
    <li><strong>[blank]</strong>The last three fields are used to denote days before the account is made inactive, days since the Epoch when the account expires.  The last field is unused.</li>	
    

如何更改密码?

用户的密码可以通过发出“passwd”命令来修改。

默认情况下,此命令更改当前用户的密码,不需要特殊权限。


passwd  

如果您想更改其他用户的密码,您将需要管理权限。可以使用以下语法:


sudo passwd username  

系统将提示您输入“sudo”命令的密码,然后系统将提示您输入并确认您要使用的新密码。

如果您比较“/etc/shadow”文件中的哈希值,您会发现在发出 passwd 命令后它发生了变化。

如何创建新用户?

可以使用一些不同的命令创建用户。

最简单的方法可能是“adduser“命令,我们将在这里介绍该命令。在 Ubuntu 系统上,该命令链接到一个处理适当用户创建的 perl 脚本。

你可以这样称呼它:


adduser demo  

Adding user `demo' ...
Adding new group `demo' (1000) ...
Adding new user `demo' (1000) with group `demo' ...
Creating home directory `/home/demo' ...
Copying files from `/etc/skel' ...
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
Changing the user information for demo
Enter the new value, or press ENTER for the default
	Full Name []: test
	Room Number []: room
	Work Phone []: work phone
	Home Phone []: home phone
	Other []: other
Is the information correct? [Y/n]  

您将被问到一系列问题,这些问题将有助于填写“/etc/passwd”文件和“/etc/shadow”文件中的信息。

我们可以通过输入以下内容来查看它添加到“/etc/passwd”文件中的条目:


tail -1 /etc/passwd  

demo:x:1000:1000:test,room,work phoneme phone,other:/home/demo:/bin/bash  

您可以看到,这极大地利用了评论字段。其他字段按预期填写。

我们可以运行类似的命令来查看对“/etc/shadow”文件所做的修改:


sudo tail -1 /etc/shadow  

demo:$6$XvPCmWr4$HXWmaGSeU5SrKwK2ouAjc68SxbJgUQkQ.Fco9eTOex8232S7weBfr/CMHQkullQRLyJtCAD6rw5TVOXk39NAo/:15952:0:99999:7:::  

结论

使用这些简单的工具,您可以更改系统上的登录信息。

进行任何更改后测试您的登录能力非常重要。保持身份验证文件的权限相同以维护功能和安全性也很重要。

贾斯汀·埃林伍德
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 passwd 和 adduser 在 Linux VPS 上管理密码 的相关文章

随机推荐

  • 如何在 Ubuntu 中添加 apt 存储库

    使用 Ubuntu 软件中心或命令行实用程序 例如apt or apt get这些软件包是从一个或多个 apt 软件存储库下载的 APT 存储库是网络服务器或本地目录 其中包含 APT 工具可读的 deb 包和元数据文件 虽然默认 Ubun
  • 如何在 Ubuntu 18.04 上安装 Visual Studio Code

    视觉工作室代码是微软开发的开源跨平台代码编辑器 它有一个内置的调试支持 嵌入式Git控制 语法突出显示 代码完成 集成终端 代码重构和片段 在 Ubuntu 计算机上安装 Visual Studio Code 最简单且推荐的方法是启用 VS
  • 如何在 CentOS 7 上安装 Atom 文本编辑器

    Atom是由GitHub开发的开源跨平台代码编辑器 它有一个内置的包管理器 嵌入Git控制 智能自动完成 语法突出显示和多个窗格 从本质上讲 Atom 是一个基于 Electron 构建的桌面应用程序 使用 HTML JavaScript
  • 如何在 Ubuntu 20.04 上安装 Git

    Git 是世界上最流行的分布式版本控制系统 被许多开源和商业项目使用 它允许您与其他开发人员协作进行项目 跟踪代码更改 恢复到之前的阶段 创建分支 和更多 Git 最初是由莱纳斯 托瓦尔兹Linux内核的创建者 本指南介绍如何在 Ubunt
  • 如何在 Ubuntu 18.04 上安装 VirtualBox 来宾添加

    虚拟盒子是一款开源 跨平台虚拟化软件 允许您同时运行多个来宾操作系统 虚拟机 VirtualBox 提供了一组可以安装在来宾操作系统中的驱动程序和应用程序 VirtualBox Guest Additions 来宾添加为来宾计算机提供了多种
  • Linux 类型命令

    The type命令用于显示有关命令类型的信息 它将向您展示在命令行上键入给定命令时将如何解释 在这篇文章中 我们将解释如何使用Linuxtype命令 如何使用 type 命令 type是 Bash 和其他 shell 如 Zsh 和 Ks
  • 如何在 CentOS 7 上使用 Apache 安装和保护 phpMyAdmin

    phpMyAdmin 是一个基于 PHP 的开源工具 用于通过基于 Web 的界面管理 MySQL 和 MariaDB 服务器 phpMyAdmin 允许您与 MySQL 数据库交互 管理用户帐户和权限 执行 SQL 语句 以各种数据格式导
  • 如何在 Ubuntu 20.04 上设置 Nginx 服务器块

    服务器块是一种 Nginx 指令 它定义特定域的设置 允许您在一台服务器上运行多个网站 对于每个网站 您可以设置网站文档根目录 包含网站文件的目录 创建单独的安全策略 使用不同的 SSL 证书等等 本文介绍如何在 Ubuntu 20 04
  • 如何在 CentOS 7 上添加和删除用户

    CentOS 以及所有其他 Linux 发行版都是一个多用户操作系统 每个用户可以对各种命令行和 GUI 应用程序拥有不同的权限级别和特定设置 了解如何添加和删除用户是每个 Linux 用户应该了解的基本技能之一 在本教程中 我们将解释如何
  • 如何在树莓派上安装和使用 Docker

    Docker 是一个容器化平台 允许您快速构建 测试和部署应用程序作为可移植 自给自足的容器 几乎可以在任何地方运行 在本教程中 我们将解释如何在 Raspberry Pi 上安装 Docker 并探索基本的 Docker 概念和命令 先决
  • 如何在 Ubuntu 18.04 上使用 Apache 安装和配置 Nextcloud

    下一云是一个开源 自托管的文件共享和协作平台 类似于 Dropbox 它捆绑了媒体播放器 日历和联系人管理 Nextcloud 可通过应用程序进行扩展 并拥有适用于所有主要平台的桌面和移动客户端 在本教程中 我们将向您展示如何在 Ubunt
  • 了解 /etc/passwd 文件

    Linux 系统上可以使用多种不同的身份验证方案 最常用和标准的方案是针对 etc passwd and etc 影子 files etc passwd是一个基于纯文本的数据库 包含系统上所有用户帐户的信息 这是owned第 644 章权限
  • 如何在 Debian 9 上使用 UFW 设置防火墙

    Debian 包含多个软件包 这些软件包提供了用于管理防火墙的工具 其中 iptables 作为基本系统的一部分安装 对于初学者来说 学习如何使用 iptables 工具正确配置和管理防火墙可能很复杂 但 UFW 简化了它 UFW Unco
  • 如何在 Ubuntu 14.04 服务器上安装 ISPConfig3

    介绍 尽管命令行是一个功能强大的工具 可以让您在许多情况下快速轻松地工作 但在某些情况下 可视化界面会很有帮助 如果您要在一台计算机上配置许多不同的服务 或者为客户端管理系统的某些部分 则可以使用诸如ISP配置可以使这个任务变得更加简单 I
  • 如何在 CentOS 7 上安装 Git

    介绍 版本控制已成为现代软件开发中不可或缺的工具 版本控制系统允许您在源代码级别跟踪您的软件 您可以跟踪更改 恢复到之前的阶段以及从基本代码分支以创建文件和目录的替代版本 最流行的版本控制系统之一是git 许多项目在 Git 存储库中维护其
  • 什么是 Kubernetes?

    介绍 Kubernetes 是一个功能强大的开源系统 最初由 Google 开发 并得到云原生计算基金会 CNCF 的支持 用于在集群环境中管理容器化应用程序 它旨在提供更好的方法来管理跨不同基础设施的相关分布式组件和服务 要了解有关 Ku
  • 使用 Debian 9 进行初始服务器设置

    介绍 当您首次创建新的 Debian 9 服务器时 您应该尽早执行一些配置步骤作为基本设置的一部分 这将提高服务器的安全性和可用性 并为您后续的操作奠定坚实的基础 第一步 以 root 身份登录 要登录您的服务器 您需要知道您的服务器的公共
  • 如何使用 DigitalOcean 云服务器创建虚荣或品牌名称服务器

    介绍 托管提供商或经销商特别感兴趣 拥有品牌或 虚荣域名服务器为客户提供了更专业的外观 它 无需要求您的客户将其域名指向另一个域名 公司的域名服务器 本教程将概述两种创建方法 自定义域名服务器 i 虚荣和 ii 品牌 Types 虚荣名称服
  • 如何在 Ubuntu 18.04 上安装 MySQL

    本教程的先前版本由以下人员编写榛子维尔多 介绍 MySQL是一个开源数据库管理系统 通常作为流行的一部分安装LAMP Linux Apache MySQL PHP Python Perl 堆栈 它使用关系数据库和 SQL 结构化查询语言 来
  • 如何使用 passwd 和 adduser 在 Linux VPS 上管理密码

    介绍 密码和身份验证是每个用户在 Linux 环境中工作时必须处理的概念 这些主题涵盖许多不同的配置文件和工具 在本指南中 我们将探索一些基本文件 例如 etc passwd 和 etc shadow 以及用于配置身份验证的工具 例如名称恰