0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何创建一个简单的脚本

jf_ZqFkd6Up 来源:Linux迷 作者:Linux迷 2022-10-10 11:12 次阅读

Shell 脚本可以为您节省时间和精力,但是如果您不保护您的密码,它们就会成为您的负担。以下是如何保持安全的方法。
Bash 脚本是系统管理员工作的重要组成部分。它们允许您自动化普通和关键的任务。
使用脚本的一个好处是,它们可以在不需要人工干预的情况下独立运行,但有时自动化需要用户密码的任务可能很有挑战性。让我们看看如何在不影响安全性的情况下安全地自动化需要密码的脚本。
创建一个简单的脚本
假设您想要创建一个简单的脚本,将 Linux 主文件夹备份到远程位置,以便在数据丢失的情况下可以轻松地恢复数据。
首先在您的主文件夹中创建一个Bash脚本文件,使用touch命令或其他方法,并将其命名为 linuxmi.sh。请随意使用您喜欢的任何名称和目录。
该脚本使用 rsync 命令(一种功能强大的文件复制工具)将本地主目录中的所有文件备份到远程服务器。
复制以下脚本的内容并将其粘贴到您的 Bash 文件中。记住用本地 home 用户的正确名称替换用户 linuxmi。还要为远程服务器提供正确的用户名和IP地址。


#!/bin/bash
#将数据复制到远程服务器
rsync -avl --mkpath /home/linuxmi user_name@remote_server/home/Backup
如果您没有远程服务器来进行测试,您可以简单地安装 VirtualBox 并在本地机器上设置一个 VM。使用 VM 客户机作为远程服务器。
保存文件。要执行该脚本,您需要使用sudo chmod 755命令授予它执行权限。所有用户都可以执行该脚本,但只有sudo用户可以修改该文件。
最后,从终端使用以下命令执行Bash脚本:

./linuxmi.sh
每当运行此脚本时,系统都会提示您输入远程服务器密码。如果您希望在没有人为干预的情况下运行脚本,例如在使用Cron时,这不是我们想要的。
自动化密码登录
在您的本地 PC 或运行脚本的 PC 上安装 sshpass,这是一个非交互式密码提供程序。
在基于 Debian 发行版
如果你使用的是基于 Debian 的发行版,比如 Ubuntu, Pop!_OS 或 Lubuntu:

sudo apt update && sudo apt install sshpass
在 RHEL 和 Fedora 上

dnf install sshpass
在安装 sshpass 之后修改脚本,使其看起来如下所示。


#!/bin/bash
#将数据复制到远程服务器
sshpass-p"yourpassword"rsync-avl--mkpath/home/linuxmiuser_name@remote_server/home/Backup

这里以纯文本的形式提供密码。显然,这不是理想的方式,因为它不安全,也不是很好的实践。如果文件落入坏人之手,你的麻烦就大了。
为了提高安全性,我们将使用 GnuPG,这是一种安全的开源加密工具。
对您的密码进行加密
在大多数Linux系统上,GnuPG是默认安装的,但是如果您的系统上没有安装GnuPG,下面介绍如何安装GnuPG。
使用命令 touch .secrets 创建一个名为 secrets 的隐藏文件。作为额外的安全措施,我们在默认情况下隐藏了文件,下面介绍如何在 Linux 上查看隐藏的文件。
在 secrets 文件中,输入远程 PC 的密码并保存。
接下来,使用 gpg 命令加密该文件。

sudo gpg .secrets
系统将提示您输入一个安全且强的密码短语以打开加密文件。
GnuPG 将创建一个新文件,扩展名 .gpg 附加在旧文件名后面。您的新文件名现在应该是 secrets.gpg,假设您使用 secrets 文件名。
如果使用cat命令查看 secrets.gpg 的内容,您将看到一些如下的文本,以表明您的密码已加密。
要以纯文本的形式查看文件的内容,您需要使用以下命令对其进行解密(系统会提示您输入在加密过程中设置的密码):

gpg -dq secrect.gpg
在脚本中使用加密密码
如需在脚本中使用加密后的密码,请按如下步骤更新脚本。


#!/bin/bash
#将数据复制到远程服务器
gpg-dqsecrets.gpg|sshpassrsync-avl--mkpath/home/linuxmiuser_name@remote_server/home/Backup
再次运行备份脚本,这次不会提示您输入密码。
使用Bash脚本自动化任务
GnuGP 经常用于保护 PC 上的敏感文件和数据,也是保护 Linux 上自动 Bash 脚本中的密码的好工具。
使用Bash脚本可以做很多事情。Bash是一个强大的工具,可以帮助您自动化Linux上的许多东西,学习编写Bash脚本是一项值得的投资。
审核编辑:彭静
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • PC
    PC
    +关注

    关注

    9

    文章

    2066

    浏览量

    154036
  • 服务器
    +关注

    关注

    12

    文章

    9025

    浏览量

    85192
  • 脚本
    +关注

    关注

    1

    文章

    387

    浏览量

    14833

原文标题:如何在 Linux Shell 脚本中使用加密密码

文章出处:【微信号:Linux迷,微信公众号:Linux迷】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何创建简单的bash shell脚本

    我们可能经常会在 Linux 服务器上做些重复的工作,比如文件的备份,清理临时文件,或者数据库的备份与恢复等。
    发表于 11-28 16:58 3089次阅读
    如何<b class='flag-5'>创建</b><b class='flag-5'>一</b><b class='flag-5'>个</b><b class='flag-5'>简单</b>的bash shell<b class='flag-5'>脚本</b>

    基于FPGA创建简单的电机控制程序

    FPGA 非常适合精密电机控制,在这个项目中,我们将创建简单的电机控制程序,在此基础上可以构建更复杂的应用。
    发表于 08-11 09:06 1262次阅读
    基于FPGA<b class='flag-5'>创建</b><b class='flag-5'>一</b><b class='flag-5'>个</b><b class='flag-5'>简单</b>的电机控制程序

    如何从简单的数学表达式创建Saber模型?

    如何从简单的数学表达式创建Saber模型,将你的输出描述为输入的函数?例如 out=a*
    的头像 发表于 12-05 13:42 689次阅读
    如何从<b class='flag-5'>一</b><b class='flag-5'>个</b><b class='flag-5'>简单</b>的数学表达式<b class='flag-5'>创建</b><b class='flag-5'>一</b><b class='flag-5'>个</b>Saber模型?

    如何创建链接脚本

    FJ256GP710GLD,即使原来的意思是针对PIC24探险者板。有没有人在那里为我的芯片创建链接脚本,或者知道我在哪里可以找到
    发表于 05-08 14:11

    如何创建和执行简单的Linux shell脚本

     如果您愿意要尝试更长的shell脚本,请将下面的shell脚本(并附加为PDF和ODT文件)复制到文本编辑器中,保存,使其可执行并运行。当您了解更多Linux命令时,您可以创建更复杂的shell
    的头像 发表于 11-06 17:28 1.3w次阅读

    什么是脚本脚本程序学习

    脚本中编写VB脚本代码。可以象使用系统函数样使用项目中完成的脚本创建脚本时,确定其型号并定
    的头像 发表于 05-11 10:39 6707次阅读
    什么是<b class='flag-5'>脚本</b>?<b class='flag-5'>脚本</b>程序学习

    linux系统中如何创建文本菜单

    当使用Linux系统时,最常见的Shell脚本交互类型是应用菜单(文本菜单),文本菜单的核心是case命令。 H. L.使用case命令完成菜单交互。 让我们在下面创建
    发表于 09-25 15:45 1144次阅读

    如何使用PYNQ和Zigbee创建简单的家庭自动化系统

    使用 PYNQ 和 Zigbee 创建简单且可扩展的家庭自动化系统。
    发表于 08-16 15:20 1381次阅读
    如何使用PYNQ和Zigbee<b class='flag-5'>创建</b><b class='flag-5'>一</b><b class='flag-5'>个</b><b class='flag-5'>简单</b>的家庭自动化系统

    创建简单的L E D驱动器

    创建简单的L E D驱动器
    发表于 11-03 08:04 0次下载
    <b class='flag-5'>创建</b><b class='flag-5'>一</b><b class='flag-5'>个</b><b class='flag-5'>简单</b>的L E D驱动器

    如何创建简单的温度计

    电子发烧友网站提供《如何创建简单的温度计.zip》资料免费下载
    发表于 11-15 10:15 0次下载
    如何<b class='flag-5'>创建</b><b class='flag-5'>一</b><b class='flag-5'>个</b><b class='flag-5'>简单</b>的温度计

    创建带有按钮的简单项目

    电子发烧友网站提供《创建带有按钮的简单项目.zip》资料免费下载
    发表于 06-30 10:08 0次下载
    <b class='flag-5'>创建</b><b class='flag-5'>一</b><b class='flag-5'>个</b>带有按钮的<b class='flag-5'>简单</b>项目

    分享249拿来即用的shell脚本

      由于脚本案例太多,在此仅展示部分,完整版领取方式请见文末       249拿来即用的shell脚本!   这249Shell脚本
    的头像 发表于 07-07 10:52 1156次阅读
    分享249<b class='flag-5'>个</b>拿来即用的shell<b class='flag-5'>脚本</b>

    Vyond推出首款基于提示的脚本和视频创建

    VyondGo 是款新的脚本和视频创建应用程序,将集成到Vyond的人工智能视频创建平台中。借助易于使用、基于提示的界面,用户可以根据几个简单
    的头像 发表于 07-12 10:32 781次阅读

    编写点名器脚本

    目的:编写脚本,可以将准别好的名字合集的.txt传入脚本,然后每次随机显示一个人的姓名
    的头像 发表于 11-06 12:41 567次阅读
    编写<b class='flag-5'>一</b><b class='flag-5'>个</b>点名器<b class='flag-5'>脚本</b>

    简单的Shiro RCE检测和利用脚本

    简单的Shiro RCE检测和利用脚本
    的头像 发表于 01-09 09:46 599次阅读