标签 密码 下的文章

在 Ubuntu 中重新设置已忘记的 root 用户的密码

这篇简单的指南将向你解释,如何在 Ubuntu 22.04 和 20.04 LTS 桌面环境中,以及从服务器版本中的 恢复 rescue 模式中重新设置 sudo 密码。

介绍

安装 Ubuntu 时,创建的一个新用户将会带有 sudo 权限,用以执行各种各样的管理任务。

如果你的 Ubuntu 系统有多个 sudo 用户,你能够从另外一个 sudo 用户的账号下,轻松地重新设置所忘记的一个 sudo 用户或管理员用户的密码。

如果你只有一个 sudo 用户,并且忘记了密码怎么办?没有问题! 从 Ubuntu 的 恢复 rescue 单一用户 single user 模式中恢复 sudo 用户密码很容易。

虽然这篇指南是在 Ubuntu 22.04 和 20.04 LTS 版本上进行的正式测试,不过,下面给定的步骤对于其它的 Ubuntu 版本和衍生版本来说是相同的。

在 Ubuntu 22.04 / 20.04 LTS 中重新设置 sudo 密码

首先,启动你的 Ubuntu 系统到 恢复 rescue 模式下,来重新设置一个 sudo 用户的密码,操作如下面的链接所述。

如何启动到 Ubuntu 22.04 / 20.04 / 18.04 的 恢复 rescue 模式 或 急救 Emergency 模式

现在,进入到 恢复 rescue 模式下,通过运行下面的命令,以读/写的模式挂载根(/)文件系统:

# mount -n -o remount,rw /

现在,使用 passwd 命令来重新设置 sudo 用户的密码:

# passwd ostechnix

在这里,ostechnix 是 sudo 用户的名称。使用你自己的用户名称来替换掉它。

输入两次密码:

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

Reset Sudo Password In Ubuntu 22.04 / 20.04 LTS

就这样。我们已经重新设置 sudo 用户密码。如果你按照上面链接所述的方法 1 进入到 恢复 rescue 模式,按下 Ctrl+d 组合键来启动到正常模式。或者,你也可以输入下面的任意一个命令来启动到正常模式。

# systemctl default

或,

# exit

如果你想重新启动系统,而不是启动到正常模式,输入:

# systemctl reboot

如果你已经按照上面链接所述的方法 2 进入到 恢复 rescue 模式,输入:

# exit

你将返回到 恢复菜单 recovery menu 。现在选择 “ 恢复正常启动 Resume normal boot ”,并按下回车键。

Boot Into Normal Mode In Ubuntu

在强调一次,选择 “ 确定 OK ” 按钮,并按下回车按键来继续启动到正常模式:

Exit Recovery Mode And Boot Into Normal Mode

现在,你在运行管理命令时可以使用新的 sudo 密码。

如果我把用户名称和密码都忘了怎么办?

如果你忘记了用户名称,在 恢复 rescue 模式下,你可以很容易地列出你的 Linux 系统中的用户名称,使用目录:

# cat etc/passwd

来自我 Ubuntu 22.04 系统的输出示例:

[...]
ostechnix:x:1000:1000:Ostechnix,,,:/home/ostechnix:/bin/bash
[...]

好了,现在,你找到用户名称了。只需要按照上面的步骤来重新设置用户的密码即可。


via: https://ostechnix.com/how-to-reset-sudo-password-in-ubuntu-20-04-lts/

作者:sk 选题:lkxed 译者:robsean 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

在 Fedora 中重置忘记的 root 密码。

你是否忘记了 Fedora 中的 root 密码?或者你想更改 Fedora 系统中的 root 用户密码?没问题!本手册将指导你在 Fedora 操作系统中完成更改或重置 root 密码的步骤。

注意: 本手册已在 Fedora 36 和 35 版本上进行了正式测试。下面提供的步骤与在 Fedora Silverblue 和旧 Fedora 版本中重置 root 密码的步骤相同。

步骤 1 - 打开 Fedora 系统并按下 ESC 键,直到看到 GRUB 启动菜单。出现 GRUB 菜单后,选择要引导的内核并按下 e 编辑选定的引导条目。

Grub Menu In Fedora 36

步骤 2 - 在下一个页面中,你将看到所有启动参数。找到名为 ro 的参数。

Find ro Kernel Parameter In Grub Entry

步骤 3 - 将 ro 参数替换为 rw init=/sysroot/bin/sh。请注意 rwinit=/sysroot...之间的空格。修改后的内核参数行应如下所示。

Modify Kernel Parameters

步骤 4 - 上述步骤更改参数后,按 Ctrl+x 进入紧急模式,即单用户模式。

在紧急模式下,输入以下命令以 读/写 模式挂载根文件系统(/)。

chroot /sysroot/

Mount Root Filesystem In Read, Write Mode In Fedora Linux

步骤 5 - 现在使用 passwd 命令重置 root 密码:

passwd root

输入两次 root 密码。我建议使用强密码。

Reset Or Change Root Password In Fedora

步骤 6 - 重置 root 密码后,运行以下命令在重启时启用 SELinux 重新标记:

touch /.autorelabel

Enable SELinux Relabeling On Reboot In Fedora

步骤 7 - 最后,退出单用户模式并通过运行以下命令将 Fedora 系统重启到正常模式:

exit
reboot

等待 SELinux 重新标记完成。这将需要几分钟,具体时长取决于文件系统的大小和硬盘的速度。

SELinux Filesystem Relabeling In Progress

步骤 8 - 文件系统重新标记完成后,你可以使用新的 root 密码登录到你的 Fedora 系统。

Login To Fedora As Root User

如你所见,在 Fedora 36 中重置 root 密码的步骤非常简单,并且与 在 RHEL 中重置 root 密码 及其衍生版本(如 CentOS、AlmaLinux 和 Rocky Linux)完全相同。


via: https://ostechnix.com/reset-root-password-in-fedora/

作者:sk 选题:lkxed 译者:geekpi 校对:turbokernel

本文由 LCTT 原创编译,Linux中国 荣誉推出

Go 的随机数生成器是生成难以猜测的密码的好方法。

你可以使用 Go 编程语言 提供的随机数生成器来生成由 ASCII 字符组成的难以猜测的密码。尽管本文中提供的代码很容易阅读,但是你仍需要了解 Go 的基础知识,才能更好地理解它。如果你是对 Go 还不熟悉,请阅读 Go 语言之旅 来了解更多信息,然后返回此处。

在介绍实用程序和它的代码之前,让我们先来看看这个 ASCII 表的子集,它可以在 man ascii 命令的输出中找到:

30 40 50 60 70 80 90 100 110 120
 ---------------------------------
0:    (  2  <  F  P  Z  d   n   x
1:    )  3  =  G  Q  [  e   o   y
2:    *  4  >  H  R  \  f   p   z
3: !  +  5  ?  I  S  ]  g   q   {
4: "  ,  6  @  J  T  ^  h   r   |
5: #  -  7  A  K  U  _  i   s   }
6: $  .  8  B  L  V  `  j   t   ~
7: %  /  9  C  M  W  a  k   u  DEL
8: &  0  :  D  N  X  b  l   v
9: '  1  ;  E  O  Y  c  m   w

在所有 ASCII 字符中,可打印字符的十进制值范围为 33 到 126,其他的 ASCII 值都不适合用于密码。因此,本文介绍的实用程序将生成该范围内的 ASCII 字符。

生成随机整数

第一个实用程序名为 random.go,它生成指定数量的随机整数,这些整数位于给定范围内。random.go 最重要的部分是这个函数:

func random(min, max int) int {
    return rand.Intn(max-min) + min
}

此函数使用了 rand.Intn() 函数来生成一个属于给定范围的随机整数。请注意,rand.Intn() 返回一个属于 [0,n) 的非负随机整数。如果它的参数是一个负数,这个函数将会抛出异常,异常消息是:panic: invalid argument to Intn。你可以在 math/rand 文档 中找到 math/rand 包的使用说明。

random.go 实用程序接受三个命令行参数:生成的整数的最小值、最大值和个数。

编译和执行 random.go 会产生这样的输出:

$ go build random.go
$ ./random
Usage: ./random MIX MAX TOTAL
$ ./random 1 3 10
2 2 1 2 2 1 1 2 2 1

如果你希望在 Go 中生成更安全的随机数,请使用 Go 库中的 crypto/rand 包。

生成随机密码

第二个实用程序 randomPass.go 用于生成随机密码。randomPass.go 使用 random() 函数来生成随机整数,它们随后被以下 Go 代码转换为 ASCII 字符:

for {
    myRand := random(MIN, MAX)
    newChar := string(startChar[0] + byte(myRand))
    fmt.Print(newChar)
    if i == LENGTH {
        break
    }
    i++
}

MIN 的值为 0MAX 的值为 94,而 startChar 的值为 !,它是 ASCII 表中第一个可打印的字符(十进制 ASCII 码为 33)。因此,所有生成的 ASCII 字符都位于 !~ 之间,后者的十进制 ASCII 码为 126

因此,生成的每个随机数都大于 MIN,小于 MAX,并转换为 ASCII 字符。该过程继续进行,直到生成的密码达到指定的长度。

randomPass.go 实用程序接受单个(可选)命令行参数,以定义生成密码的长度,默认值为 8,这是一个非常常见的密码长度。执行 randomPass.go 会得到类似下面的输出:

$ go run randomPass.go 1
Z
$ go run randomPass.go 10
#Cw^a#IwkT
$ go run randomPass.go
Using default values!
[PP8@'Ci

最后一个细节:不要忘记调用 rand.Seed(),并提供一个 种子 seed 值,以初始化随机数生成器。如果你始终使用相同的种子值,随机数生成器将生成相同的随机整数序列。

随机数生成代码

你可以在 GitHub 找到 random.gorandomPass.go 的源码。你也可以直接在 play.golang.org 上执行它们。

我希望这篇文章对你有所帮助。如有任何问题,请在下方发表评论或在 Twitter 上与我联系。


via: https://opensource.com/article/18/5/creating-random-secure-passwords-go

作者:Mihalis Tsoukalos 选题:lkxed 译者:lkxed 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

代码托管平台 Gitee 的开源仓库需要先审再上线

周三晚上,有用户反馈 Gitee 上的开源仓库访问受限,需要审核后才能公开访问。这一事件引发了大量讨论。Gitee 回复称:“即日起执行开源仓库审核后上线的措施,所有新上线的开源仓库需要进行人工审核后可正式公开。已经是开源状态的仓库,我们会暂时转为私有仓库,经审核后会进行公开。……此举也是迫于无奈,目前已经是 Gitee 团队能确保大家尽快正常使用的最优解。”有趣的是,如此重大的动作在 Gitee 官网并没有明确公布,而是选择在知乎上草草回复了不到两百字。而且,从用户实际公开仓库的过程中,只是勾选了几个平台方免责的选项而已。

消息来源:知乎
老王点评:红薯做 Gitee 时可能没想到最大的运营风险不是来自于友商的竞争。不过就这个事情,虽然无奈,但是我觉得处理的有点太糙了,一看就是技术人员破罐破摔的处理方式。

依靠近距离蓝牙解锁的特斯拉都能被远程解锁

研究人员设计了一种黑客技术,使他能够解锁数以百万计的特斯拉和无数的其他设备,即使认证的手机或钥匙扣在数百码或数英里之外。这种攻击利用了蓝牙低能耗标准的弱点,采用中继攻击方式,只需要不到 100 美元的设备,就可以在汽车和解锁手机之间通过中继的方式截获并传输蓝牙密钥,从而非法解锁设备。而且这种攻击对所有不需要在解锁手机上进行操作的解锁操作都有效。几乎所有仅靠接近度进行认证、并且不同时要求用户互动或地理位置查询的 BLE 设备都是脆弱的,这影响到了大量的特斯拉汽车和智能门锁。

消息来源:arstechnica
老王点评:本来 BLE 就不是为近距离解锁设计的,只是被产品厂家用到这个场景了。要想解决这个连 CVE 编号都没有的问题,只能是修改使用方式,比如解锁需要人在手机上进行操作。

愚蠢的 CEO 们最常使用的密码一样愚蠢

一般人最常使用的密码是连续的数字或简单的单词,如123456picture1,以及 password。在最近的一份由全球 2.9 亿个网络安全数据泄露事件组成的研究样本中,也记录了受影响者的工作级别。结果发现,当涉及到 CEO 和其他高级企业高管时,他们的密码选择与一般公众基本相同,尽管许多人经常以名字为特征。

消息来源:pcgamer
老王点评:给这些愚蠢的老板们准备个用来输入密码的助理吧,要不他们会一直用这么简单的密码的。

回音

  • 红帽前两天说 RHEL 9 将在几周内可用,不过实际上没等那么久,现已向客户 正式发布 了 RHEL 9。

pass 是一个经典的 UNIX 式密码管理系统,使用 GnuPG(GPG)作为加密方式,终端是它的主要界面。

 title=

如今,我们每个人都有几十个密码。幸运的是,这些密码大部分几乎都是网站的,你可能通过互联网浏览器访问大部分网站,而许多浏览器都有内置的密码管理器。最流行的互联网浏览器也有一个同步的功能,可以帮助你在各种设备上运行的浏览器之间分发密码,所以当你需要时,绝不会找不到你的登录信息。如果这不能够满足你,还有类似 BitWarden 这样优秀的开源项目也可以托管你加密后的密码,确保只有你自己才能解锁它们。这些方案有助于你轻松维护独特的密码,我使用这些方便系统来管理一些密码。但是我的主密码存储库比以上这些方式简单的多。我主要是使用 pass ,这是一个经典的 UNIX 式密码管理系统,使用 GnuPG(GPG)作为加密方式,终端是它的主要界面。

安装 pass

你可以从你的发行版仓库中安装 pass 命令。

在 Fedora、Mageia 和类似的发行版上,你可以用你的包管理器来安装它:

$ sudo dnf install pass

在 Elementary、Mint 和其它基于 Debian 的发行版上:

$ sudo apt install pass

在 macOS 上,你可以使用 Homebrew 来安装它:

$ brew install pass

设置 GnuPG

在使用 pass 之前,你需要一个有效的 PGP( 良好隐私 Pretty Good Privacy )密钥。如果你已经维护了一个 PGP 密钥,你可以跳过这个步骤,或者你可以选择为使用 pass 而创建一个新的密钥。最常见的开源 PGP 实现是 GnuPG(GPG),它随 Linux 一起提供。对于 macOS,你可以从 gpgtools.org、Homebrew 或者 Macports 安装它。要创建 GnuPG 密码,运行这个命令:

$ gpg --generate-key

你会被提示输入你的名字和电子邮件,并且为密钥创建一个密码。你的密钥是一个数字文件,你的密码只有你自己知道。它俩组合起来能够“加锁”和“解锁”加密信息,比如包含密码的文件。

GPG 密钥更像是一个房门钥匙或者汽车钥匙,如果你失去了它,它“锁起来”的任何东西都会变得无法获得。仅仅知道你的密码是不够的。

如果你已经管理了几个 SSH 密钥,你可能已经习惯了这一点了。如果你对数字加密密钥是个新手,可能得花些时间来适应。备份你的 ~/.gnupg 目录,这样当你下次心血来潮决定尝试一个令人兴奋的新发行版时,你就不会意外地删除它。

做一个备份,并保持备份安全。

设置 pass

要开始使用 pass ,你必须初始化一个 密码仓库 ,它定义为一个储存位置,配置为使用特定加密密钥。你可以通过与密钥相关联的名称或数字指纹来指明要用于密码存储的 GPG 密钥。你自己的名字通常更容易选择:

$ pass init seth
mkdir: created directory '/home/seth/.password-store/'
Password store initialized for seth

如果你忘记了你的名称,你可以使用 gpg 命令查看数字指纹和关联你名称的密钥:

$ gpg --list-keys
gpg --list-keys
/home/seth/.gnupg/pubring.kbx
-----------------------------
pub  ed25519 2022-01-06 [SC] [expires: 2024-01-06]
     2BFF94286461216C907CBA52F067996F13EF10D8
uid  [ultimate] Seth Kenlon &lt;[[email protected]][7]&gt;
sub  cv25519 2022-01-06 [E] [expires: 2024-01-06]

用指纹初始化密码库与用你的名字初始化密码库基本相同:

$ pass init 2BFF94286461216C907CBA52F067996F13EF10D8

存储密码

使用 pass add 命令添加密码到你的密码仓库:

$ pass add [www.example.com][8]
Enter password for [www.example.com][8]:

提示你键入你要添加的密码。

密码现在存储到了你的密码仓库中。你可以自己查看一下:

$ ls /root/.password-store/
www.example.com.gpg

当然,这个文件是不可读的,并且你尝试对它运行 catless 时,在你的终端上会显示乱码(如果扰乱了你的显示,可以使用 reset 命令来恢复你的终端。)

用 pass 编辑密码

我使用不同的用户名称进行不同的上网活动,所以网站的用户名常常和密码同样重要。pass 是有这个功能的,即使它默认状态下并不提示你。你可以使用 pass edit 命令添加用户名到密码文件:

$ pass edit www.example.com

这会打开一个编辑器(一般是你设置为 EDITOR 或者 VISUAL 环境变量 的编辑器) 显示 www.example.com 文件的内容。目前,那仅仅是一个密码,但是你可以添加用户名甚至网址或者你想要添加的任何信息。它是个加密了的文件,所以你可以把你要放的任何东西放到里边。

bd%dc$3a49af49498bb6f31bc964718C
user: seth123
url: example.com

保存文件然后关闭。

从 pass 获取密码

要查看密码文件的内容,使用 pass show 命令:

$ pass show www.example.com
bd%dc$3a49af49498bb6f31bc964718C
user: seth123
url: www.example.org

查找密码

有时候很难记住一个密码是归入到 www.example.com 还是 example.com,又或者一些类似 app.example.com 的网址。此外,一些网站架构使用不同的 URL 来实现不同的网站功能,所以你可能在 www.example.com 网址下填写过密码,你同时也用相同的登录信息在合作网站 www.example.org 下使用过密码。

如果有疑问,可以使用 grep 命令。pass grep 命令显示整个搜索项目的实例,无论是在文件名中还是在文件内容中:

$ pass grep example
www.example.com:
url: www.example.org

在浏览器中使用 pass

我使用 pass 来获取互联网密码以外的信息,但是网站是我经常需要密码的地方。我常常在电脑上的某个地方打开一个终端,所以我通过 Alt+Tab 键切换到终端用 pass 来获取信息并不麻烦。但是我并不这么做是因为有一些插件可以将 pass 与网页浏览器整合在一起。

pass 托管脚本

首先,安装 pass 托管脚本:

$ curl -sSL github.com/passff/passff-host/release/latest/download/install_host_app.sh

这个脚本放置了一个 Python 脚本,帮助你的浏览器访问你的密码和 GPG 密码。用你所用的浏览器的名字运行它(或者不写参数,查看全部选项):

$ bash ./install_host_app.sh firefox

如果你使用多个浏览器,你可以为每一个浏览器安装它。

pass 附件

一旦你已经安装了这个托管程序,你可以为你的浏览器安装一个附件或者扩展。在你的浏览器附件或者扩展管理器里搜索 PassFF 插件。

 title=

安装了这个附件,然后关闭并重新打开浏览器。

导航到一个你在密码仓库中存有密码的网站。在你的登录文本框右侧会显示一个小小的 “P” 图标。

 title=

点击 “P” 按钮会看到你的密码仓库中与你网站名称匹配的一个列表。

 title=

点击“纸和笔”的图标填写表单,或者通过“纸飞机”的图标填写并自动提交表单。

轻松的密码管理,而且完全整合了!

尝试用 pass 作为你的 Linux 密码管理器

对于那些想用日常使用的工具来管理密码和个人信息的用户来说,pass 命令是一个很好的选择。如果你已经依赖 GPG 和终端,那么你可能会喜欢 pass 系统。对于那些不想让他们的密码被束缚在特定程序上的用户来说,这也是一个重要的选择。可能你并不只使用一个浏览器,或者你不喜欢这种想法,即如果你决定停止使用一个应用程序,可能很难从它那里提取你的密码。使用 pass ,你可以在一个 UNIX 式的直接系统中保持对你的秘密的控制。


via: https://opensource.com/article/22/1/manage-passwords-linux-terminal

作者:Seth Kenlon 选题:lujun9972 译者:hwlife 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Firefox 拦截了中国用户下载广告拦截扩展

蓝点网报道,Firefox 中国版以及国际版均已阻止了中国大陆用户访问其广告拦截扩展的下载页面,而在其它地区则没有被屏蔽。当用户尝试访问时会提示“此页面在您的地区不可用”,返回代码为 “HTTP 451 出于法律原因不可用”。但通过其它方式安装的拦截扩展目前可以正常工作。受影响的广告拦截扩展包括 uBlock Origin、AdGuard AdBlocker 等多款知名广告拦截器。据悉,此次屏蔽可能与芒果 TV 和酷 6 网对 Mozilla 基金会的中国子公司谋智的起诉有关。诉讼原因是 Firefox 安装广告拦截程序后可以屏蔽上述视频网站的片头广告,给原告方带来严重经济损失。Mozilla 在败诉后,提起上述,依然败诉。

老王点评:万恶的广告(商)!

以消除密码为己任的 FIDO 联盟

FIDO 联盟成员包括各大科技公司,其使命为减少世界上“对密码的过度依赖”,以最终实现大规模采用 替代密码的技术。无密码的 FIDO 标准依靠设备的生物识别扫描器(或你选择的主密码)来对你进行本地认证,而不需要将你的任何数据通过互联网传送到网络服务器上进行验证。其主要思路是让操作系统实现一个“FIDO 凭证”管理器,这有点类似于内置的密码管理器。这种机制是存储可以在设备之间同步的加密密钥,并由你的设备的生物识别或密码锁进行保护。

老王点评:密码系统因其屡屡成为安全短板而被人诟病,但是密码系统的结构非常简单,而这种无密码系统似乎又过于复杂了。我总觉得没有银弹,无密码系统或许也有它的问题。

Linux 内核的随机数生成器获得十余年来的重大改进

Linux 内核的 随机数生成器(RNG)不仅在 5.17 中最终废除了 SHA-1,转而使用 BLAKE2s,而且还将在 5.18 中将 /dev/random/dev/urandom 统一起来,使它们之间没有任何区别。所以现在选择哪一个都是正确的,社区的争吵可以停止了。目前还没有改变 RNG 行为方式的任何根本。它仍在计算熵位,并拥有与以前相同的熵源集。但是,将这些熵源转化为加密安全的随机数的底层算法已经被彻底修改了。

老王点评:终于在 WireGuard 创始人的出手后,Linux 的 RNG 开始追上其它操作系统了。