Shell 腳本可以為您節(jié)省時(shí)間和精力,但是如果您不保護(hù)您的密碼,它們就會(huì)成為您的負(fù)擔(dān)。以下是如何保持安全的方法。
Bash 腳本是系統(tǒng)管理員工作的重要組成部分。它們允許您自動(dòng)化普通和關(guān)鍵的任務(wù)。
使用腳本的一個(gè)好處是,它們可以在不需要人工干預(yù)的情況下獨(dú)立運(yùn)行,但有時(shí)自動(dòng)化需要用戶密碼的任務(wù)可能很有挑戰(zhàn)性。讓我們看看如何在不影響安全性的情況下安全地自動(dòng)化需要密碼的腳本。
創(chuàng)建一個(gè)簡單的腳本
假設(shè)您想要?jiǎng)?chuàng)建一個(gè)簡單的腳本,將 Linux 主文件夾備份到遠(yuǎn)程位置,以便在數(shù)據(jù)丟失的情況下可以輕松地恢復(fù)數(shù)據(jù)。
首先在您的主文件夾中創(chuàng)建一個(gè)Bash腳本文件,使用touch命令或其他方法,并將其命名為 linuxmi.sh。請隨意使用您喜歡的任何名稱和目錄。
該腳本使用 rsync 命令(一種功能強(qiáng)大的文件復(fù)制工具)將本地主目錄中的所有文件備份到遠(yuǎn)程服務(wù)器。
復(fù)制以下腳本的內(nèi)容并將其粘貼到您的 Bash 文件中。記住用本地 home 用戶的正確名稱替換用戶 linuxmi。還要為遠(yuǎn)程服務(wù)器提供正確的用戶名和IP地址。
#!/bin/bash #將數(shù)據(jù)復(fù)制到遠(yuǎn)程服務(wù)器 rsync -avl --mkpath /home/linuxmi user_name@remote_server/home/Backup如果您沒有遠(yuǎn)程服務(wù)器來進(jìn)行測試,您可以簡單地安裝 VirtualBox 并在本地機(jī)器上設(shè)置一個(gè) VM。使用 VM 客戶機(jī)作為遠(yuǎn)程服務(wù)器。
保存文件。要執(zhí)行該腳本,您需要使用sudo chmod 755命令授予它執(zhí)行權(quán)限。所有用戶都可以執(zhí)行該腳本,但只有sudo用戶可以修改該文件。
最后,從終端使用以下命令執(zhí)行Bash腳本:
./linuxmi.sh每當(dāng)運(yùn)行此腳本時(shí),系統(tǒng)都會(huì)提示您輸入遠(yuǎn)程服務(wù)器密碼。如果您希望在沒有人為干預(yù)的情況下運(yùn)行腳本,例如在使用Cron時(shí),這不是我們想要的。
自動(dòng)化密碼登錄
在您的本地 PC 或運(yùn)行腳本的 PC 上安裝 sshpass,這是一個(gè)非交互式密碼提供程序。
在基于 Debian 發(fā)行版
如果你使用的是基于 Debian 的發(fā)行版,比如 Ubuntu, Pop!_OS 或 Lubuntu:
sudo apt update && sudo apt install sshpass在 RHEL 和 Fedora 上
dnf install sshpass在安裝 sshpass 之后修改腳本,使其看起來如下所示。
#!/bin/bash #將數(shù)據(jù)復(fù)制到遠(yuǎn)程服務(wù)器 sshpass-p"yourpassword"rsync-avl--mkpath/home/linuxmiuser_name@remote_server/home/Backup
這里以純文本的形式提供密碼。顯然,這不是理想的方式,因?yàn)樗话踩膊皇呛芎玫膶?shí)踐。如果文件落入壞人之手,你的麻煩就大了。
為了提高安全性,我們將使用 GnuPG,這是一種安全的開源加密工具。
對您的密碼進(jìn)行加密
在大多數(shù)Linux系統(tǒng)上,GnuPG是默認(rèn)安裝的,但是如果您的系統(tǒng)上沒有安裝GnuPG,下面介紹如何安裝GnuPG。
使用命令 touch .secrets 創(chuàng)建一個(gè)名為 secrets 的隱藏文件。作為額外的安全措施,我們在默認(rèn)情況下隱藏了文件,下面介紹如何在 Linux 上查看隱藏的文件。
在 secrets 文件中,輸入遠(yuǎn)程 PC 的密碼并保存。
接下來,使用 gpg 命令加密該文件。
sudo gpg .secrets系統(tǒng)將提示您輸入一個(gè)安全且強(qiáng)的密碼短語以打開加密文件。
GnuPG 將創(chuàng)建一個(gè)新文件,擴(kuò)展名 .gpg 附加在舊文件名后面。您的新文件名現(xiàn)在應(yīng)該是 secrets.gpg,假設(shè)您使用 secrets 文件名。
如果使用cat命令查看 secrets.gpg 的內(nèi)容,您將看到一些如下的文本,以表明您的密碼已加密。
要以純文本的形式查看文件的內(nèi)容,您需要使用以下命令對其進(jìn)行解密(系統(tǒng)會(huì)提示您輸入在加密過程中設(shè)置的密碼):
gpg -dq secrect.gpg在腳本中使用加密密碼
如需在腳本中使用加密后的密碼,請按如下步驟更新腳本。
#!/bin/bash #將數(shù)據(jù)復(fù)制到遠(yuǎn)程服務(wù)器 gpg-dqsecrets.gpg|sshpassrsync-avl--mkpath/home/linuxmiuser_name@remote_server/home/Backup再次運(yùn)行備份腳本,這次不會(huì)提示您輸入密碼。
使用Bash腳本自動(dòng)化任務(wù)
GnuGP 經(jīng)常用于保護(hù) PC 上的敏感文件和數(shù)據(jù),也是保護(hù) Linux 上自動(dòng) Bash 腳本中的密碼的好工具。
使用Bash腳本可以做很多事情。Bash是一個(gè)強(qiáng)大的工具,可以幫助您自動(dòng)化Linux上的許多東西,學(xué)習(xí)編寫B(tài)ash腳本是一項(xiàng)值得的投資。
-
PC
+關(guān)注
關(guān)注
9文章
2134瀏覽量
155894 -
服務(wù)器
+關(guān)注
關(guān)注
12文章
9619瀏覽量
87086 -
腳本
+關(guān)注
關(guān)注
1文章
395瀏覽量
28318
原文標(biāo)題:如何在 Linux Shell 腳本中使用加密密碼
文章出處:【微信號:Linux迷,微信公眾號:Linux迷】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
如何創(chuàng)建一個(gè)簡單的bash shell腳本

基于FPGA創(chuàng)建一個(gè)簡單的電機(jī)控制程序

如何從一個(gè)簡單的數(shù)學(xué)表達(dá)式創(chuàng)建一個(gè)Saber模型?

如何創(chuàng)建一個(gè)鏈接腳本
如何創(chuàng)建和執(zhí)行一個(gè)簡單的Linux shell腳本
什么是腳本?腳本程序?qū)W習(xí)

linux系統(tǒng)中如何創(chuàng)建文本菜單
如何使用PYNQ和Zigbee創(chuàng)建一個(gè)簡單的家庭自動(dòng)化系統(tǒng)

創(chuàng)建一個(gè)簡單的L E D驅(qū)動(dòng)器

如何創(chuàng)建一個(gè)簡單的溫度計(jì)

創(chuàng)建一個(gè)帶有按鈕的簡單項(xiàng)目

分享249個(gè)拿來即用的shell腳本

評論