sudo 提權時自動輸入密碼

2021-09-02 23:14:05 字數 1166 閱讀 9001

嗯哼,辦法是有的。

目前找到兩種解決方案,方案一親測有效,方案二未試過,僅做記錄。

方案一

有的應用自帶選項,可以直接從標準輸入讀入資料,這時候只需要結合管道就好了。比如sudo-s引數,以及passwdde-stdin引數。

舉個例子,使用該方法執行netease-cloud-music

使用sudo-s選項,結合shell的輸入重定向。比如,我每次都需要提權開啟netease-cloud-music,那麼我可以寫這麼乙個指令碼:

#!/usr/bash

# netease-cloud-music.sh

echo

"your password"

|sudo -s netease-cloud-music --force-device-scale-factor=2 --no-sandbox

然後賦予執行許可權:sudo chmod +x netease-cloud-music.sh,然後再執行sh netease-cloud-music.sh即可,無需再次輸入密碼。

與快捷鍵繫結之後,每次只需要按下快捷鍵,他就能自動開啟了,很方便。

方案二

這個辦法涉及乙個額外的應用叫做expect,在manajro上可以使用pacman來安裝。expect就是用來做互動的,基本任何互動登入的場合都能使用,但是需要安裝expect包。

語法如下:

#!/bin/expect  

settimeout 30

spawn ssh -l jikuan.zjk 10.125.25.189

expect

"password:"

send "zjk123\r"

interact

上述命令解釋如下:

bash指令碼,自動輸入sudo的密碼

解決方法 echo 管道 開始使用 echo admin sudo service tomcat7 stop 始終提示輸入密碼 後來檢視了下sudo命令的使用 man sudo 發現有如下的解釋 s the s stdin option causes sudo to read the passwor...

bash指令碼,自動輸入sudo的密碼

解決方法 echo 管道 開始使用 echo admin sudo service tomcat7 stop 始終提示輸入密碼 後來檢視了下sudo命令的使用 man sudo 發現有如下的解釋 s the s stdin option causes sudo to read the passwor...

用 echo 管道命令給sudo自動輸入密碼

用 echo 管道命令給sudo自動輸入密碼 這種方式密碼會明文顯示,密碼不安全,僅作為學習練習用 1 echo psw sudo s cmd 1 有時候使用指令碼執行管理員命令時,希望能夠自動執行,不被sudo 密碼中斷 2 這時候可以使用 echo 密碼 sudo s 命令 的形式來自動輸入密碼...