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

    文章

    1986

    浏览量

    153132
  • 服务器
    +关注

    关注

    12

    文章

    8341

    浏览量

    83494
  • 脚本
    +关注

    关注

    1

    文章

    378

    浏览量

    14708

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

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

收藏 人收藏

    评论

    相关推荐

    如何创建链接脚本

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

    创建简单分立元器件的步骤

    ;    orcad怎么创建简单分立元器件的封装?  图2-11 新建RES的库文件是示意图  第二步,在弹出的R?的虚线框,在右侧栏选择Place Rectangle,绘制
    发表于 09-07 17:43

    讨论下如何创建、下载和运行脚本

    让我们简要讨论下如何创建、下载和运行脚本
    发表于 05-11 06:31

    Lua脚本简单介绍

    Lua简单介绍Lua[1]是小巧的脚本语言。作者是巴西人。该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua
    发表于 08-20 06:37

    Lua脚本简单介绍

    Lua简单介绍Lua[1]是小巧的脚本语言。作者是巴西人。该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua
    发表于 08-20 08:06

    如何使用CubeMx创建简单的LED工程

    简介这篇文章介绍如何使用CubeMx创建简单的LED工程,该工程是MDK工程,当然也可以
    发表于 02-21 06:07

    如何创建简单的Sigfox项目呢?

    解释如何创建简单的 Sigfox 项目?我只想发送简单的 Sigfox 消息。我尝试从项
    发表于 12-12 07:50

    如何创建简单的UI以在STM32MP157上运行?

    ://koansoftware.com/yocto-project-meta-layer-for-stm32mp1-by-koan/我相信会创建 qtcreator 可执行文件或脚本
    发表于 02-08 07:55

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

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

    什么是脚本脚本程序学习

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

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

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

    创建一个简单的L E D驱动器

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

    如何创建自动化脚本

    在前面的 bash 初学者系列文章中,我们介绍了关于 bash 的一些基础知识,在了解了这些基础知识之后,可以尝试创建一些自动化脚本,来完成一些相对枯燥重复的管理任务。
    的头像 发表于 01-04 16:50 3075次阅读
    如何<b class='flag-5'>创建</b>自动化<b class='flag-5'>脚本</b>

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

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

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

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