CenterOS7用户密码忘记如何破解

本文介绍了一种在CentOS 7系统中忘记密码后的重置方法,通过修改启动选项进入单用户模式,重新挂载文件系统并更改密码。

前段时间装了win10和CentOS7的双系统,好久没登陆把登陆密码给忘了。弄了几天终于把密码给重置了,今天写个博客作为记录。

本文引用了http://blog.youkuaiyun.com/xztjhs/article/details/42214967http://man.linuxde.net/passwd的大部分内容,只有部分小细节需要特殊注意一下。

1、启动的时候,在启动界面,相应启动项,内核名称上按“e”;

2、进入后,找到linux16开头的地方,按“end”键到最后,输入rd.break,按ctrl+x进入;

3、进去后输入命令mount,发现根为/sysroot/,并且不能写,只有ro=readonly权限;(我的默认是有写权限的)

4、mount -o remount,rw /sysroot/,重新挂载,之后mount,发现有了r,w权限;

5、chroot /sysroot/ 改变根;

6、passwd 用户名,然后按步骤设置密码
注:这个时候需要注意passwd命令 具体参见 http://man.linuxde.net/passwd
首先要查看当前passwd中是否有自己的用户名
用户列表文件:/etc/passwd
用户组列表文件:/etc/group
查看系统中有哪些用户:cut -d : -f 1 /etc/passwd
查看可以登录系统的用户:cat /etc/passwd | grep -v /sbin/nologin | cut -d : -f 1

如果是root用户则直接使用passwd root这个命令,该命令设置当前root的密码,但是对于登陆用户的话就不一定了(这里我反复尝试很多次才搞明白)。使用安装光盘修复的时候在该步骤敲入cut -d : -f 1 /etc/passwd不一定会出现你自己的用户,所以还是放弃使用安装光盘修复的方法;还有中方法说是删除passwd文件的用户名对应的第一个冒号和第二个冒号中的X,但是每次重启后X又恢复了不知何因,所以这个方法也放弃了。

7、touch /.autorelabel 这句是为了selinux生效

8、ctrl+d 退出

9、然后reboot


### HarmonyOS 中实现用户登录功能的方法 在 HarmonyOS 开发环境中,可以通过 ArkTS 编写用户登录界面并集成用户认证逻辑。以下是关于如何实现用户登录功能的具体方法和示例代码。 #### 1. 创建登录界面 使用 ArkTS 构建一个简单的登录界面,包含用户名输入框、密码输入框以及登录按钮。以下是一个基本的登录界面布局: ```typescript @Entry @Component struct LoginScreen { @State username: string = ''; @State password: string = ''; build() { Column({ space: 15 }) { Image($r('app.media.logo')) .width(70) .height(70) TextInput(this.username, (value) => this.username = value) .placeholder('请输入用户名') .width('90%') TextInput(this.password, (value) => this.password = value) .password(true) .placeholder('请输入密码') .width('90%') Button('登录', () => { if (this.validateCredentials()) { console.log('登录成功'); } else { Prompt.showToast({ message: '用户名或密码错误' }); } }) .width('90%') .margin({ top: 20 }) Row({ space: 15 }) { Text('注册账号').onClick(() => Router.push('/register')); Text('忘记密码').onClick(() => Router.push('/forgot-password')); }.alignItems(ItemAlign.Center) } .width('100%') .padding(30) .backgroundColor(Color.White) } validateCredentials(): boolean { const validUsername = 'admin'; const validPassword = '123456'; return this.username === validUsername && this.password === validPassword; } } ``` 此代码片段展示了如何创建一个带有验证逻辑的简单登录界面[^5]。 --- #### 2. 集成用户认证模块 为了增强安全性,可以引入 `userAuthModel` 文件中的用户认证逻辑。该模型通常用于存储用户的凭据信息,并提供加解密支持以保护敏感数据。以下是如何加载用户认证模块的一个例子: ```typescript // userAuthModel.ts class UserAuthModel { private static readonly KEY_ALIAS = 'UserCredentialKey'; async authenticate(username: string, password: string): Promise<boolean> { try { // 假设这里有一个远程 API 或本地数据库校验过程 const isValid = await this.checkCredentials(username, password); if (!isValid) return false; // 存储已验证的用户信息 await Preference.put('username', username); return true; } catch (error) { console.error(`Authentication failed: ${error}`); return false; } } private checkCredentials(username: string, password: string): Promise<boolean> { // 这里可以根据实际需求替换为真实的校验逻辑 return new Promise((resolve) => resolve(username === 'admin' && password === '123456')); } } export default new UserAuthModel(); ``` 在此部分中,`authenticate` 方法负责执行身份验证流程,并返回布尔值表示结果是否成功[^4]。 --- #### 3. 调整业务逻辑 将上述两部分内容结合起来,在点击“登录”按钮时触发用户认证逻辑。如果认证通过,则允许进入主页面;否则提示错误信息。 更新后的按钮回调函数如下所示: ```typescript Button('登录', async () => { const authResult = await UserAuthModel.authenticate(this.username, this.password); if (authResult) { Router.replace('/main-page'); // 替换为主页面路由地址 } else { Prompt.showToast({ message: '用户名或密码错误' }); } }) .width('90%') .margin({ top: 20 }) ``` 此处实现了完整的登录交互体验[^4]。 --- ### 总结 以上内容涵盖了从 UI 设计到后端认证的整体解决方案。开发者可根据项目具体需求调整细节,比如更换更复杂的校验机制或者对接第三方服务接口等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值