1. 怎麼給批處理腳本上個密碼鎖
@echo off
:menu
echo.
set /p password=請輸入密碼:
echo.
if /i "%password%"=="A" (goto next) else (echo; 密碼錯誤,請重新輸入&&goto menu)
:next
echo Yes
echo.寫下你的代碼
pause
2. linux中如何用shell腳本批量設置用戶密碼
while read line
do
user=`echo $line|cut -d : -f 1`
useradd $user
password = `echo $line | cut -d : -f 2`
echo "$password" | passwd --stdin "$user"
done<userlist.txt
Linux下 Passwd有參數 --stdinThis option is used to indicate that passwd should read the new password from standard input, which can be a pipe.
--stdin參數表明passwd可以從標准輸入或者管道接收密碼。
3. 如何在腳本中執行scp時自動輸入密碼
腳本如下:x0dx0ax0dx0a#!/usr/bin/expect -fx0dx0ax0dx0aset password 密碼x0dx0ax0dx0aspawn scp 用戶名@目標機器ip:拷貝文件的路徑 存放本地文件的路徑 x0dx0aset timeout 300 x0dx0aexpect "用戶名@目標機器ip's password:" #注意:這里的「用戶名@目標機器ip」 跟上面的一致x0dx0aset timeout 300 x0dx0asend "$password\r"x0dx0aset timeout 300 x0dx0asend "exit\r"x0dx0ax0dx0aexpect eofx0dx0ax0dx0a附:scp參數x0dx0a-r:拷貝目錄x0dx0a-c:允許壓縮x0dx0ax0dx0a一個完整的例子x0dx0ax0dx0a#!/usr/bin/expect -fx0dx0aset password 123456x0dx0a#downloadx0dx0aspawn scp [email protected]:/root/a.wmv /home/yangyz/x0dx0aset timeout 300 x0dx0aexpect "[email protected]'s password:"x0dx0aset timeout 300 x0dx0asend "$password\r"x0dx0aset timeout 300 x0dx0asend "exit\r"x0dx0aexpect eof x0dx0ax0dx0a#uploadx0dx0aspawn scp /home/yangyz/abc.sql [email protected]:/root/test.sql x0dx0aset timeout 300 x0dx0aexpect "[email protected]'s password:"x0dx0aset timeout 300 x0dx0asend "$password\r"x0dx0aset timeout 300 x0dx0asend "exit\r"x0dx0aexpect eof
通過給一個文件夾加密就可使該文件夾里的所有文件得到保護。其工作效果,就是在您雙擊進入該文件夾時系統提示您輸入密碼,正確則進入,錯誤則自動退回到硬碟根目錄下--非常好用! 1、進入您要進行加密保護的文件夾中,在空白處單擊滑鼠右鍵,選擇「自定義文件夾…」選項; 2、單擊「下一步」選擇「自定義」並在副選框中選擇「選擇或編輯該文件夾的Html模板」,單擊「下一步」; 3、在選擇模板類型中選擇「標准」,並將「編輯該模板」選項選中,單擊「下一步」; 4、在彈出的「Folder」文件中找到〈script. language="JavaScript"〉,在其下方頂頭輸入以下內容: var pass = prompt("請輸入密碼") 該處的「請輸入密碼」為系統提示語 if(pass != "123") 「123」處換成您自己設定的密碼 {window.location="c:"} 5、保存「Folder」文件之後,選擇完成,文件夾加密就可以了因為剛才的諸多步驟就是Windows的腳本編程,所以經驗證,該方法適用於所有Windows系統。如果需要去掉保護,只需要把「Folder」文件修改回原樣就好啦! 取消密碼還有一種方法那就是自定義文件夾=下一步=刪除自定義設置
5. 龍族引擎腳本加密怎麼設置密碼
龍族引擎腳本加密設置密碼步驟:
1、在微端伺服器目錄下打開『Pak.txt』文本。
2、將pak文件和密碼寫進去。
3、然後重新打開微端伺服器。
4、點擊驗證密碼即可。龍族引擎是唯一一款支持六端數據互通的傳奇引擎,使研發更為簡單便捷,人人皆可成為GM,讓傳奇支持(PC端、網頁端、安卓apk、蘋果IOS、手機H5、電視APP)多端數據互通。
6. 如何給powershell腳本加密
適用於Powershell3.0及以後版本。
假設你需要給文件加密,下面教你如何給自己的文件加密:
$Path="$env:tempsecret.txt"
$Secret='HelloWorld!'
$Passphrase='Somesecretkey'
$key=[Byte[]]($Passphrase.PadRight(24).Substring(0,24).ToCharArray())
$Secret|
ConvertTo-SecureString-AsPlainText-Force|
ConvertFrom-SecureString-Key$key|
Out-File-FilePath$Path
notepad$Path
當你需要解密出裡面的內容,這時就需要最初的密碼:
$Passphrase=Read-Host'Enterthesecretpassphrase'
$Path="$env:tempsecret.txt"
$key=[Byte[]]($Passphrase.PadRight(24).Substring(0,24).ToCharArray())
try
{
$decryptedTextSecureString=Get-Content-Path$Path-Raw|
ConvertTo-SecureString-Key$key-ErrorActionStop
$cred=New-Object-TypeNameSystem.Management.Automation.PSCredential('mmy',$decryptedTextSecureString)
$decryptedText=$cred.GetNetworkCredential().Password
}
catch
{
$decryptedText='(wrongkey)'
}
"Thedecryptedsecrettext:$decryptedText"
7. 如何在腳本裡面自動輸入密碼
shell腳本在處理自動循環或大的任務方面可節省大量的時間,通過創建一個處理任務的命令清單,使用變數、條件、算術和循環等方法快速創建腳本以完成相應工作,這比在命令行下一個個敲入命令要省時省力得多。
但是有時候我們可能會需要實現和交互程序如ftp,telnet伺服器等進行交互的功能,這時候我們需要用到shell的自動交互功能.
最簡單的例子就是創建用戶,我創建100個用戶,初始密碼為123,那麼要是挨著passwd username ,交互性輸入密碼,那不得瘋掉,但是腳本里應該怎麼寫呢?將密碼123,輸入到passwd命令?
本文收集了較常用交互方法,並進行了比較和總結。
自動交互方法一:利用命令的自帶參數,將標准輸入作為手動輸入的內容
自動交互最關鍵的就是交互信息的自動輸入,首先聯想到文件重定向,在shell編程中有這樣一種用法(參考Linux與UNIX SHELL編程指南 chapt 5.7):"command <<delimiter p="" 從標准輸入中讀入,直至遇到delimiter分界符。?
重定向操作符command <<delimiter是一種非常有用的命令,shell將分界符delimiter之後直至下一個同樣的分界符之前的所有內容都作為輸入,遇到下一個分界符, p="" shell就知道輸入結束了。最常見的delimiter分界符是eof,當然完全可以自定為其他字元。
對於需求1 要求的自動登陸ftp,並作系列操作,則可以用這種方法進行自動交互。代碼如下:
[yjwan@test ~]$ ftp -i -n 192.168.21.46 <
user dbftp dbftp101
ls
EOF
下面是得到的結果:
Connected to 192.168.21.46.
220 developerjail FTP server (Version 6.00LS) ready.
331 Password required for dbftp.
230 User dbftp logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
229 Entering Extended Passive Mode (|||54281|)
150 Opening ASCII mode data connection for '/bin/ls'.
total 8847424
-rw-r--r-- 1 dbftp www 9055318991 Aug 28 14:28 ewiz90.sql_2010-08-29
226 Transfer complete.
221 Goodbye.
測試可以發現,如上代碼使用帳號名dbftp,密碼dbftp101成功登陸了ftp伺服器,並進入目錄,ls出當前目錄的文件。
注意事項:
1 這里一定要加-i ,否則必定失敗!!
這里ftp用的-I 參數 結束了互動式輸入,因此可以用文本的方式自動地輸入用戶密碼以及操作方式
如果不用-I 參數,那麼必定要求你手動輸入密碼的!!那麼就達不到自動登陸的要求了
你可以man ftp找到這個參數
-i 關閉多文件傳送中的互動式提示。請參考 prompt、mget、mput 和 mdelete 子命令,以取得多文件傳送中的提示的描述。
-n 防止在起始連接中的自動登錄。否則, ftp 命令會搜索 $HOME/.netrc 登錄項,該登錄項描述了遠程主機的登錄和初始化過程。請參考 user 子命令。
2 舉一反三:只要是要求輸入密碼的命令,一般都帶有一個參數,允許你從標准輸入,輸入用戶密碼,以及操作。
其他常用的自動登陸命令的參數
1) Passwd命令
Linux下 Passwd有參數
--stdin
This option is used to indicate that passwd should read the new password from standard input, which can be a pipe.
所以linux下自動改變用戶密碼的辦法就是
Echo 密碼 |passwd –stdin 用戶名
Freebsd沒有以上參數 注意
他的方法是echo passwd |pw mod user username -h 0
2)smbpasswd
-s
This option causes smbpasswd to be silent (i.e. not issue prompts)
and to read its old and new passwords from standard input, rather
than from /dev/tty (like the passwd(1) program does). This option
is to aid people writing scripts to drive smbpasswd
3)sudo
在shell腳本中需要用root用的來執行指令:
sudo 自動輸入密碼
echo "password" | sudo -S netstat -tlnp
-S
The -S (stdin) option causes sudo to read the password from the standard input instead of the terminal device.
3 標准輸入還可以用以下兩種寫法:
可以將下面的內容寫入到一個文本
然後ftp -I –n ip <文本
或者echo 「..」 |ftp –I –n ip
都是可以的!
因為他們都滿足「有一個標準的輸入」這個條件
4 ssh的自動登陸沒有這樣的自動輸入密碼的參數
一般都是使用公鑰/私鑰的方式自動登錄
這種文章滿街都是,網上google一下ssh自動登陸就可以找到答案。
或者用下面的辦法。
自動交互方法2:利用expect腳本自動登陸
這個 expect基本屬於一種編程了
基本任何需要互動式登陸的場合,他都可以解決,是相當的牛逼。
只要是第一種辦法解決不了的,基本都可以用這種辦法。
8. shell腳本自動給用戶配置密碼
很高興能回答你的問題,根據你的題意,給出如下回答:
配置單個用戶的密碼:
echo"PASSWORD_IN_PUT"|passwd--stdinUSER
多個用戶配置一個密碼:
#!/bin/sh
FILE=/home/user.list#用戶名保存文件
whilereadline
do
echo"PASSWORD_IN_PUT"|passwd--stdin$line
done<$FILE
將如上內容保存到一個文件中,sh file 即可執行。
其中,FILE文件的格式為:
root
linux
test
ftp
#等等,每個用戶一行
多個用戶配置多個密碼:(必須有規律,沒有規律無法用腳本自動執行)
#!/bin/sh
FILE=/home/user.lis
foritemin`cat$FILE`
do
case$itemin
root)
#用戶為root
echo"PASSWORD_root"|passwd--stdin$item
;;
linux)
#用戶為linux
echo"PASSWORD_linux"|passwd--stdin$item
;;
*)
#用戶為其他
echo"PASSWORD_other"|passwd--stdin$item
;;
esac
done
以上兩個循環中,for、while 都可以使用和互換,只是寫法不同,列出兩種,供你參考。
case 語句用於進行多分支判斷,你可以在 *) 這個默認語句前面再加入其他判斷,格式參照上例即可。
歸根結底,自動配置密碼的核心主要是你會不會 passwd 命令中的 --stdin 選項。
9. 在Powershell腳本中安全的使用密碼信息
在使用基於Powershell自動化的腳本中,大多數場景下需要未腳本傳遞憑據以供驗證環節能夠正常工作,很多管理員習慣於在他們的腳本中使用明文密碼,但如果是測試腳本,倒是無關緊要,若是用於生產環境的腳本,這種行為不但很糟糕,還很可怕,不懷好意的同志們會很樂意並輕松的拿到它然後搞一些或輕或重的破壞。但是,如果正確使用powershell所提供的密碼加密功能,能很輕松的解決這個問題。
PowerShell中,提供了兩種生成憑據的方式分別是 Get-Credential 和 Read-Host
Get-Credential
Get-Credential 命令被用來創建PSCredential對象並且將之存儲到變數中,並保證不在屏幕上顯示如下
上面的命令將憑據信息保存到變數 $crd 中 ,這個變數可被很容易的用於訪問需指定憑據的 Cmdlets
Read-Host
使用 Read-Host 同樣可以起到保護明文密碼顯示的功能 如下, -AsSecureString 可以將明文密碼存儲成加密密碼串對象,SecureString對象可被用於可接受該類型參數的命令,可以通過定義變數和管道輸出將該對象傳遞給命令。
ConvertTo-SecureString
ConvertTo-SecureString 用於加密密碼和其它字元串,它可以接受字元串然後輸出為SecureString對象,SecureString對象可被用於可接受該類型參數的命令,可以通過定義變數和管道輸出將該對象傳遞給命令。
語法如下:
當不適用參 -Key 或者 -SecureKey 時,PowerShell將會調用 Windows Data Protection API (DPAPI) 加密解密字元串。但這將導致生成的 SecureString 對象在其它計算機上使用。
如下將把明文"Password"轉化為 SecureString
這種方式雖然能夠將明文字元轉換為 SecureString 對象,但是卻無法將其存儲為一個文件以後用。必須把它轉化為標准加密字元串才可以,要達到這個目的,要用到 ConvertFrom-SecureString 命令。
ConvertFrom-SecureString
使用 ConvertFrom-SecureString 命令可以將 SecureString 對象存儲成為標准加密字元串,可以將 SecureString 對象或者命令產生的 SecureString 對象通過管道傳給它來實現
語法:
上面的例子產生的 SecureString 對象可以用於此處轉換成標准加密字元串
結合上面幾個命令,我們可以有以下幾種方法將 SecureString 轉換成的標准加密字元串通過 Out-File 命令存儲成txt文件
導出純文本模式生成的 SecureString 對象
導出 Get-Credential 產生的 SecureString 對象
導出通過 Read-Host 產生的 SecureString 對象
將上述存儲的標准加密字元串文件轉換回 SecureString 並用來創建 PSCredential
上面提到,在使用 ConvertTo-SecureString 和 ConvertFrom-SecureString 加密憑據時,如不使用 -Key 或 -SecureKey ,則PowerShell會調用DPAPI進行加解密,因為無法再創建其之外的機器上使用,如下
同一台主機
不同主機上使用上面同一個txt文件
使用 Key 或者 SecureKey 實現跨機器使用加密文件
使用 -Key 參數創建保存標准加密字元串的文件,下面將會用到Windows Class 「System.Security.Cryptography.RNGCryptoServiceProvider"來創建隨機數據來填充作為 -Key 的參數值的數組
使用隨機數據來創建AES key並導出為文件
創建 SecureString 對象
創建憑據
在另外的機器上
上面的內容已經完全可以幫助我們在powershell腳本中來加密密碼了,如果有其它問題歡迎留言。