`

shell脚本验证root密码是否正确

阅读更多

 

最近几天由于工作需要,要在suse操作系统下实现一个验证root密码正确性的shell脚本,没想到什么好办法,最后用一个取巧的方式应付了,方法如下:
1、通过su - root命令尝试切换到root用户;
2、假设密码是正确的,那么切换成功后,通过whoami命令打印一下切换后的当前用户;
3、判断输出结果是否是root,来间接证明root密码是否正确。
 
具体脚本如下:
#!/bin/bash
root_pwd=$1
 
#获取当前脚本目录
cmddir=`dirname $0`
cmddir=`cd ${cmddir}/;pwd`
 
#定义一个临时脚本,该脚本用于输出切换用户后的当前用户
temp_script="${cmddir}/temp.sh"
 
#生成temp_script脚本及其内容
echo  '#!/bin/bash' >${temp_script}
echo 'pwd' >>${temp_script}
 
#定义切换用户函数
get_user()
{
su - root<<EOF
${root_pwd}
bash ${temp_script}
EOF
}
 
#执行切换函数,并获取输出结果
user=`get_user`
 
#判断是否root用户
if [ "${user}" == "root" ]
then
     echo "correct root password"
else
     echo "invalid root password"
fi
 
注意事项:
1、该脚本应在非root用户下执行
2、get_user函数中的那几行代码要顶格写(这应该是here document 的要求,否则报错)
3、实际编写脚本的时候最好不用写中文,哪怕是注释
 
起初有想过用expect脚本来实现,但是关键字匹配比较麻烦,因为不同语言的操作系统,其关键字不一样最后还是用了上面的方式。

 

分享到:
评论

相关推荐

    Shell脚本编程100例

    Shell脚本编程是Linux系统管理中的重要技能,它允许用户自动化执行一系列命令,大大提高工作效率。以下是一些关于Shell脚本编程的关键知识点: 1. **Hello World脚本**:这是所有编程语言的基础,用于验证环境设置...

    MySQL5.7安装过程并重置root密码的方法(shell 脚本)

    下面将详细介绍如何通过shell脚本来安装MySQL 5.7以及重置root密码。 首先,你需要从MySQL官方网站下载适用于你系统的rpm包。例如,如果你使用的是RHEL/CentOS 6.x系统,可以使用以下命令下载: ```bash wget ...

    Shell脚本实现自动输入密码登录服务器

    Shell脚本实现自动输入密码登录服务器是自动化运维和部署中的常见需求,特别是在执行涉及权限验证的任务时,如scp文件传输或SSH远程连接。在这种情况下,使用expect工具可以帮助我们编写脚本,自动处理需要用户交互...

    oracle自动备份shell脚本

    此为shell脚本程序,在rhel5.5操作系统上验证通过可行,命令系统参照rhel,其它操作系统不保证能够使用。 此脚本使用crontab配置值守。 此脚本为一个.sh文件,请使用root用户执行此脚本,此脚本为一个安装配置脚本,...

    shell脚本实现linux系统文件完整性检测

    本文将详细介绍如何利用Shell脚本实现Linux系统文件完整性检测,并通过计算MD5校验和的方法来验证文件是否被篡改。 #### 关键概念解释 1. **文件完整性检测**: 是一种安全技术,用于检测关键文件是否被未经授权地...

    shell脚本中和mysql数据库交互.pdf

    首先,为了在shell脚本中避免每次运行时手动输入MySQL的登录密码,可以在用户主目录(通常是$HOME)下创建一个名为`.my.cnf`的隐藏配置文件。这个文件将包含数据库连接的凭证信息。例如: ```bash [client] ...

    linuxShell脚本编写实验7报告.pdf

    Linux Shell脚本是Linux系统中进行自动化任务处理的重要工具,它允许用户编写一系列命令来执行复杂的操作。在本次实验中,我们重点学习了以下几个方面的Shell脚本编写技巧: 1. **基本知识**:Shell脚本的基本结构...

    mysql5.7自动化安装shell脚本.zip

    【MySQL 5.7 自动化安装Shell脚本】是一个针对Linux系统中MySQL数据库5.7版本自动安装的脚本,通常用于简化部署过程,提高效率。在毕业设计或项目实施中,这样的脚本能够帮助开发者快速搭建环境,特别是在Windows 10...

    linux-用shell编程调度的实验报告.doc

    - 以root权限修改系统时间,验证备份脚本是否按预期工作。 5. **结果分析与总结**: - 实验过程中需要注意细节,避免因小错误导致大问题。 - 应当充分利用课外时间熟悉Linux环境和Shell编程。 - 遇到不理解的...

    shell脚本编译基础

    ### Shell脚本编译基础知识点 #### 一、Shell脚本编写规则 ##### 1.1 必要条件 - **环境准备**:确保系统已安装支持的Shell环境,如Bash、Sh等。 - **编辑器选择**:可以选择任何文本编辑器来编写脚本,如vi/vim...

    Shell脚本实现自动化备份与压缩

    内容概要:本文介绍了一个简单的 Shell 脚本示例,该脚本用于自动化完成 Linux 或 Unix-like 系统中的文件备份并压缩为归档文件的任务。主要内容包括检查权限、验证目录的存在性、创建带有时间戳的子文件夹、进行...

    迅为iTOP4412Android4.0系统启动时执行shell脚本设置有线网ip

    通过查看系统的ip地址显示是否为预定的IP地址(如***.***.*.***),来确认shell脚本是否已经成功运行并配置了有线网络接口。 6. **故障排查** 如果脚本没有成功运行,需要通过超级终端手动运行服务并查看问题所在...

    Shell脚本中执行sql语句操作mysql的5种方法

    ### Shell脚本中执行SQL语句操作MySQL的五种方法详解 #### 一、引言 在日常的系统管理和维护工作中,尤其是对于自动化运维任务,如数据库备份与恢复等场景,常常需要通过Shell脚本来执行SQL语句来操作MySQL数据库。...

    编写shell命令脚本程序

    - **统一存储**:将所有Shell脚本保存在一个固定位置,如用户目录下的`bin`目录,方便管理和维护。 - **注释与记忆**:不要依赖记忆,为脚本添加清晰的注释,以便将来修改和升级。 - **格式化代码**:使用缩进来组织...

    mysql-shell-安装脚本

    7. **验证安装**:安装完成后,你需要验证MySQL Shell是否正确安装。这可以通过在终端中运行`mysqlsh`命令来检查。如果一切正常,你应该能够看到MySQL Shell的提示符,然后你可以用刚创建的用户登录并进行测试。 8....

    PHP脚本修改Linux或Unix系统口令方法.pdf

    我们需要编辑`/etc/sudoers`文件(使用`visudo`命令)来添加一条规则,允许Web服务器用户(如Apache的www-data或Lighttpd的lighttpd)无密码执行修改口令的Shell脚本。 第三步,创建一个PHP接口,它调用之前配置好...

    用法PHP脚本修改Linux或Unix系统口令_.docx

    - **Shell脚本**:这是一个用于修改系统密码的脚本,需要能够运行在Linux或Unix环境下。 - **Sudo访问权**:为了能够以root权限执行修改密码的命令,必须配置sudo权限。 - **Apache或Lighttpd web服务器**:作为...

    shell脚本练习-2

    ### Shell脚本练习知识点解析 #### 一、测试用户名与密码是否正确 **知识点:** - 使用`su`命令切换用户。 - Bash 脚本中的条件判断。 - 使用重定向来传递密码。 **实现原理:** 在 Linux 系统中,`su` 命令用于...

    SHELL脚本自动部署KVM虚拟化

    通过上述脚本,我们可以快速部署并验证系统是否满足KVM虚拟化的前提条件,进而实现自动化的KVM虚拟化环境搭建。这对于企业级应用来说是非常重要的,因为它不仅提高了效率,还降低了出错的可能性。

Global site tag (gtag.js) - Google Analytics