Linux修改root密码

tips:只做note,详细的知识点不表,doc比我说的更好;

解决办法

1.挂载系统分区镜像到Linux系统,前提支持ext3
2.sudo losetup -f -P emmc.bin 映射文件系统
3.sudo fdisk -l 检查loop设备,出现/dev/loop0p1-p4分区的即是emmc.bin的分区
4.当前目录mkdir guazai
5. sudo mount /dev/loop0p1 guazai #注意/dev/loop0p1 为具体要挂在的分区,分区的大小信息通过步骤3可以得到
6.下来cd guazai目录就是整个系统镜像的文件了,注意这里要用自己系统的root权限来修改读取/etc/shadow文件
7.shadow文件字段格式为:
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
ATTENTION:我们只修改加密口令
加密口令字段的格式为:

$ID$SALT$ENCRYPTED

对应的字段解释含义为:

Hash Type	ID	Hash Length
MD5			$1	22 characters
SHA-256		$5	43 characters
SHA-512		$6	86 characters

例如:

$6$HMpFTkgb$WqzuqMqYbjWsXFrOtvZPo.1gIkH6HiXJGr4QPv.k26jE.3mE...... (为了说明减少了长度)

这个密码就是SHA-512生成的,分割字符为$符号;

8.修改及生成加密口令:
在linux下终端运行这条命令:

python2 -c "import random,string,crypt;randomsalt = ''.join(random.sample(string.ascii_letters,8));print crypt.crypt('123456', '$6$%s$' % randomsalt)"

注意:123456 是密码;默认生成的是SHA-512密码;
生成的密码类似于:

$6$HMpFTkgb$WqzuqMqYbjWsXFrOtvZPo.1gIkH6HiXJGr4QPv.k26jE.3mE...... (为了说明减少了长度)

9.将生成好的密码$6开头的密码复制覆盖到需要修改的加密口令.然后:wq保存;密码即修改完成->下来同步镜像并卸载
10.首先退出guazai目录;回到guazai父目录执行 sudo umount /dev/loop0p1 #对应的/dev/loop0p1为挂在的目录,不确定可执行mount命令来确认
11.卸载完成后检查挂在成功 执行mount 无 对应的/dev/loop0p1即为成功;
12.最后卸载镜像 sudo losetup -D
13.检查是否卸载成功 sudo fdisk -l 检查没有loop设备即为成功修改,然后即可写入。

注意事项

1.检查是否修改成功?
A:一样先losetup先映射文件系统,然后mount loop设备,进入目录打印对应文件,结束一定要卸载否则文件会丢失;
要更改 Linux 系统中 `root` 用户的密码,可以使用 `passwd` 命令。以下是具体步骤: 1. 打开终端。 2. 输入以下命令并按回车键执行: ```bash sudo passwd root ``` 3. 系统会提示您输入当前用户的密码(如果您不是以 `root` 用户登录的话)。 4. 接下来,系统会提示您输入新的 `root` 用户密码,并确认新密码。 完成以上步骤后,`root` 用户的密码就成功更改了。 ### 注意事项 - 如果您是以 `root` 用户身份登录,则可以直接运行 `passwd` 命令来更改 `root` 密码,无需使用 `sudo`。 - 在某些 Linux 发行版(如 Ubuntu)中,默认情况下 `root` 用户没有设置密码,因此需要先为 `root` 用户设置密码[^4]。 ### 示例 假设您当前的用户具有 `sudo` 权限,您可以按照以下示例操作: ```bash sudo passwd root ``` 系统可能会显示如下信息: ``` [sudo] password for your_username: Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully ``` 在上述过程中,您需要输入当前用户的密码,然后设置 `root` 用户的新密码。 ### 特殊情况 如果忘记了 `root` 密码,可以通过单用户模式或者恢复模式来重置 `root` 密码。具体方法取决于您的 Linux 发行版。通常情况下,这涉及到重启系统并在引导过程中选择适当的选项来进入单用户模式或恢复模式,然后使用 `passwd` 命令来重置 `root` 密码[^1]。 ### 更改其他用户的密码 作为 `root` 用户,还可以更改其他用户的密码。只需要知道目标用户的用户名即可。例如,要更改用户名为 `vivek` 的用户密码,可以使用以下命令: ```bash sudo passwd vivek ``` 系统会提示您输入新密码并确认新密码[^2]。 ### 更改 MySQL root 用户密码 如果您需要更改 MySQL 数据库中的 `root` 用户密码,可以使用 `mysqladmin` 命令或者直接在 MySQL 中执行 SQL 命令。假设当前 MySQL `root` 用户的密码是 `oldpassword`,并且您想将其更改为 `newpass`,可以使用以下命令: ```bash mysqladmin -u root -p oldpassword password newpass ``` 或者,您可以登录到 MySQL 并执行以下 SQL 命令: ```sql ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpass'; ``` 请确保替换 `newpass` 为您想要设置的新密码[^3]。 ### 创建 Linux 镜像 如果您需要创建一个 Linux 镜像,可以参考以下命令: ```bash riscv64-elf-objcopy -O binary freedom-u-sdk/work/linux/vmlinux-stripped coreboot/payload.bin make ``` 这些命令将生成一个名为 `payload.bin` 的二进制文件,并通过 `make` 命令进行编译。最后一步是将生成的文件烧录到目标设备上[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值