Ubuntu中的用户管理(四)密码管理

<style type="text/css"> <!-- @page {margin:2cm} p {margin-bottom:0.21cm} a:link {} --> </style>

密码是Linux安全的重要组成部分,通过这部分的学习,你应该学会怎样为你的Linux系统建立一个密码策略,密码保存在什么地方,怎样为你的用户管理密码等。

有效的密码策略是一个好的系统管理计划的重要组成部分。这个策略需要包括以下几点:

  • 允许的密码组成和禁止的密码组成
  • 修改密码的频率
  • 取回或重置丢失的密码
  • 用户对密码的操作

密码文件是/etc/passwd,它是系统上所有用户的数据库文件。每一行的形式如下:

username:password:uid:gid:gecos:homedir:shell

简要介绍下gecos字段。这个字段是为了记录用户的多样性的信息。例如,用户的全名,办公室的位置,办公室电话,家庭电话,简单备注等。出于安全和隐私上的考虑,这个字段目前已经越来越少的被使用到了。但是,系统管理员要知道这个字段,因为传统的Unix程序例如fingermail会用到这个字段。因此gecos字段通常被成为finger information field。这个字段是逗号界限格式,可以通过chfnchange finger)命令更改。如果密码字段出现一个星号,那么这个用户将不能登陆Linux系统。系统管理员可以通过修改密码字段或者使用passwd -l命令锁住用户。一些系统用户通常有root权限,因此系统管理员不希望这些用户可以登陆Linux系统,可以通过将这些系统用户的shell设置为sbin/nologin或者bin/false阻止这些账户的登陆。

下面给出/etc/passwd文件的内容形式:

cindy@cindy-ThinkPad-X200:~$cat /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

lp:x:7:7:lp:/var/spool/lpd:/bin/sh

mail:x:8:8:mail:/var/mail:/bin/sh

news:x:9:9:news:/var/spool/news:/bin/sh

uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh

cindy:x:1000:1000:cindy,,,:/home/cindy:/bin/bash

……

我们注意到没有一个用户显示了密码,而是在密码字段有一个x。这是因为用户密码是阴影密码(shadow passwords),这属于Linux中的一个安全增强机制。真正的密码保存在文件/etc/shadow中。/etc/shadow文件只对于系统管理员和PAM可读。Ubuntu中自动启用了shadow password。下面给出/etc/shadow文件的内容形式:

cindy@cindy-ThinkPad-X200:~$sudo cat /etc/shadow

[sudo]password for cindy:

root:$7$h9pRtnF/$Zf8pynVBJ/m.DfAl.Q1lgw8ZCmeGYqKCe/47sNfEV6FUq59UnB1CTcZVr4.7AwtyLpizdnwlqxe0f2J/mD6th.:15536:0:99999:7:::

daemon:*:15453:0:99999:7:::

bin:*:15453:0:99999:7:::

sys:*:15453:0:99999:7:::

sync:*:15453:0:99999:7:::

games:*:15453:0:99999:7:::

man:*:15453:0:99999:7:::

lp:*:15453:0:99999:7:::

cindy:$6$/IMKHjoh$osdeLeLwe3f11QXlRts2huVISmSKUpTyaDeXihtYV39.7OAqakAeLda4WAWXpIeeopBmrU/zCDaKhp/aL1gqW1:15536:0:99999:7:::

……

冒号分开的各个字段的解释:

  1. 1个字段是用户名。
  2. 2个字段是编码后的密码。
  3. 3个字段是上次修改密码的时间,这个时间是从197011日起计算。这个日子在UNIX领域被成为epoch
  4. 4个字段是再过多少天密码才可以被再次修改的时间(避免修改密码到新密码后快速修改会原始密码)
  5. 5个字段是再过多少天密码必须被再次修改的时间。
  6. 6个字段是密码过期前多少天,用户会收到警告。
  7. 7个字段是密码过期后多少天,用户会被禁用。
  8. 8个字段是从197011日起,该帐号disabled的天数。
  9. 9个字段为保留字段。

需要注意的是密码过期日期和警告在Ubuntu中是默认禁用的。如果需要启用相应的密码策略,需要系统管理员建立相应的密码策略。etc/shadow的权限时600,常规用户不可读。

系统管理员可以手动编辑/etc/shadow文件或者使用chage命令更改密码规则(详细信息请参考shadowchageman页)。

系统管理员可通过命令chpasswd批量修改用户密码。命令接受的输入为用户名/密码对:

sudo chpasswd username:password

可以通过重定向文件输入来批量工作。此外,Ubuntu还提供了newusers命令,批量增加文本文件中的用户,并为用户分配群组,分配/home目录等。


<think>好的,我现在需要回答用户的问题:在Ubuntu中如何重置用户密码。让我先理清楚整个过程,确保步骤正确,同时要注意用户可能是新手,所以需要详细且易于理解的指导。 首先,用户可能遇到的情况是忘记了自己的密码,或者需要更改其他用户密码Ubuntu系统重置密码通常需要管理员权限,但如果用户无法登录,可能需要进入恢复模式或使用Live CD/USB。这里主要考虑两种情况:一种是当前用户记得密码,需要修改其他用户密码;另一种是完全无法登录,需要进入恢复模式重置。 首先,对于记得当前用户密码的情况,可以使用sudo passwd username命令来重置其他用户密码。这部分相对简单,但需要确保用户有sudo权限。如果用户没有sudo权限,可能需要其他方法。 第二种情况更为常见,即用户无法登录,需要进入恢复模式。这时需要重启系统,并在GRUB菜单中选择恢复模式。但用户可能不熟悉GRUB菜单的进入方式,特别是Ubuntu默认可能隐藏GRUB,需要按住Shift或Esc键。进入恢复模式后,选择root选项进入命令行,然后重新挂载文件系统为可读写,因为默认情况下恢复模式挂载为只读。这里需要执行mount -o remount,rw /命令,这一步容易出错,需要确认是否正确执行。 接下来,使用passwd username命令修改密码,然后记得执行exit退出,并继续正常启动。整个过程需要注意文件系统的挂载状态,否则修改可能无法保存。此外,如果用户使用的是全盘加密或其他特殊配置,步骤可能更复杂,但一般用户可能不需要涉及这些。 另外,如果系统没有显示GRUB菜单,可能需要修改/etc/default/grub文件,取消隐藏菜单的设置,然后更新grub。这部分可能对新手来说有点难度,需要详细说明如何编辑文件,保存并更新。 还有一种情况是使用Live CD/USB启动,挂载根分区并chroot进去修改密码。这种方法适用于GRUB恢复模式不可用的情况,但步骤较多,适合高级用户。不过用户的问题可能更多是基础情况,所以可能不需要详细展开,但可以简要提及作为备用方案。 需要提醒用户,重置密码需要物理访问权限,并且如果是其他用户密码,需要相应的权限。同时,强调在输入密码时不会显示字符,属于正常现象,避免用户误以为没有输入。 在组织步骤时,应该分点说明,先介绍有sudo权限的情况,再详细说明恢复模式步骤。同时注意命令的正确性,比如passwd命令后的用户名是否正确,以及文件系统挂载是否正确。可能还需要检查用户是否存在拼写错误,比如将remount写成remount,rw时是否有空格等问题。 最后,确保语言简洁明了,避免使用过于专业的术语,必要时解释每个步骤的目的,例如为什么要重新挂载文件系统为可读写,这样用户理解后能更好地操作,减少出错的可能。</think>在Ubuntu中重置用户密码可分为两种情况:**已知当前用户密码**和**忘记所有用户密码**。以下是详细步骤: --- ### 一、已知当前用户密码(通过终端修改) 1. **打开终端** 按 `Ctrl+Alt+T` 或搜索“终端”打开。 2. **重置密码** 输入以下命令(以用户名为 `username` 为例): ```bash sudo passwd username ``` - 输入当前用户密码(获取`sudo`权限)。 - 设置新密码并确认(输入时不会显示字符,正常输入即可)。 --- ### 二、忘记所有用户密码(通过恢复模式) #### 步骤1:进入GRUB引导菜单 1. 重启电脑,在启动时**长按 `Shift` 键**(传统BIOS)或**快速点按 `Esc` 键**(UEFI),直到出现GRUB菜单。 2. 选择 **`Advanced options for Ubuntu`** > **`Ubuntu ... (recovery mode)`**。 #### 步骤2:挂载文件系统为可读写 1. 在恢复菜单中,选择 **`root`**(进入命令行)。 2. 输入以下命令挂载根目录为可读写: ```bash mount -o remount,rw / ``` #### 步骤3:重置密码 1. 输入命令(以用户名为 `username` 为例): ```bash passwd username ``` - 输入新密码并确认。 2. 退出并重启: ```bash exit reboot ``` --- ### 注意事项 1. **GRUB菜单未显示?** - 若默认隐藏GRUB,编辑 `/etc/default/grub` 文件: ```bash sudo nano /etc/default/grub ``` - 修改 `GRUB_TIMEOUT_STYLE=hidden` 为 `GRUB_TIMEOUT_STYLE=menu`,保存后运行: ```bash sudo update-grub ``` 2. **全盘加密(LUKS)?** 需先解密磁盘(输入加密密码),再执行上述步骤。 --- ### 备用方案:使用Live USB 1. 用Ubuntu Live USB启动,选择 **`Try Ubuntu`**。 2. 挂载系统根分区: ```bash sudo mount /dev/sdXn /mnt # 替换sdXn为实际分区(如sda1) ``` 3. Chroot到系统环境: ```bash sudo chroot /mnt ``` 4. 使用 `passwd username` 重置密码。 --- 通过上述方法,可灵活应对不同场景下的密码重置需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值