當前位置:首頁 » 編程軟體 » shell腳本修改密碼

shell腳本修改密碼

發布時間: 2024-06-28 07:58:37

A. 如何使用shell腳本修改linux的登陸密碼

以root用戶為例:
第一種:
echo 「123456″ | passwd –stdin root
優點:方便快捷
缺點:如果你輸入的指令能被別人通過history或者其他方式捕獲,那麼這樣的方式是很不安全的,更重要的是如果密碼同時含有單引號和雙引號,那麼則無法通過這種方法修改。
說明:
批量修改linux密碼 passwd –stdin user 從標准輸入中讀取密碼,所以用戶可以在腳本中使用如 echo NewPasswd | passwd –stdin username 這種方式來批量更改密碼 但在其它的一些發行版(如Debian/Suse)所提供的passwd並不支持–stdin這個參數
第二種:
a. 首先將用戶名密碼一起寫入一個臨時文件.
cat chpass.txt
root:123456
zhaohang:123456
b. 使用如下命令對用戶口令進行修改:
chpasswd < chpass.txt
c. 可以使用 123456 來登錄系統,密碼修改完畢.
優點:可以很快速方便的修改多個用戶密碼
缺點:明文密碼寫在文件里仍然顯得不夠安全,但是避免了第一種修改方式不能有特殊字元串密碼的情況.
第三種:
a. 用 openssl passwd -1 來生成用戶口令,連同用戶名一起寫入文件.
cat chpass.txt
root:$1$ri2hceVU$WIf.firUBn97JKswK9ExO0
zhaohang:$1$i/Gou7.v$Bh2K6sXmxV6/UCxJz8N7b.
b. 使用如下命令對用戶口令進行修改:
chpasswd -e < chpass.txt
c. 可以使用 123456 來登錄系統,密碼修改完畢.

B. 用shell腳本批量創建30個用戶,用戶名為exam1~exam30,用戶密碼統一為gdlclinux。

寫好了,還在測試,測試好了就給你。
寫好了,通過測試了。
########################################################################
#註:本腳本中使用了函數模塊,以方便修改和調試
#************************************************
# 2011年12月10日 初稿
#************************************************
# 2011年12月11日 測試 問題:密碼修改函數尚未實現
#************************************************
# 2011年12月11日 定稿 密碼修改函數實現
#************************************************
# by [email protected] 12.11.2011
########################################################################

#設置變數
i=1
username=exam
password=gdlclinux
rmso=$(tput rmso)
smso=$(tput smso)
#此處可添加要求輸入用戶名和密碼的項

#錯誤判斷函數
SEA()
{
location=$( which useradd ) #查找useradd的絕對路徑
if [ \( "$location" = "" \) -o \( -s "$location" \) ] #判斷是否找到useradd文件,或著找到的文件為空
then
echo "Useradd was not found,job terminated $smso unsuccessfully$rmso!"
exit
else
if [ -x "$location" ] #若useradd文件存在且不為空,判斷是否具有可執行許可權
then
echo "Command useradd doesn't have excution(x) mode"
exit
else #無法確定問題原因
echo "Script terminated by some unknown problem,Please check it!"
exit
fi
fi
}
#提示信息函數
casemsg()
{
#判斷passwd執行的返回值,並進入case分支
case "$y" in
0) echo "Set password for $smso $username$i$rmso successfully"
;;
1) echo "Permission denied when set password for $smso $username$i$rmso"
exit 1 ;;
2) echo "Invalid combination of options for command passwd"
exit 2 ;;
3) echo "Unexpected failure, nothing done"
exit 3 ;;
4) echo "Unexpected failure, passwd file missing"
exit 4 ;;
5) echo "Passwd file busy, try again"
exit 5 ;;
6) echo "Invalid argument to option"
exit 6 ;;
esac
}
#用戶創建函數
usercreate()
{
useradd -m $username$i #如果需要其他功能,請參照useradd幫助手冊修改此行,如:設置uid
x=$?
}
#密碼修改函數
#這里如果你的系統里有chpasswd這個批修改工具的話,就不用這么麻煩了。
MOVpassword()
{
( echo "$password";sleep 1;echo "$password" )|passwd $username$i #若useradd執行成功,則調用passwd設置密碼
y=$?
}
#主循環
while [ "$i" -ge 1 -a "$i" -le 30 ]
do
usercreate #調用usercreate函數創建用戶
if [ "$x" -eq 0 ] #判斷useradd是否執行成功
then
echo "User $smso $username$i$rmso have been create successfully!"

MOVpassword #調用MOVpassword修改密碼

casemsg #調用casemsg函數

if [ "$y" = 0 ] #如果MOVpassword的返回值為0,則將i加1
then
let i++
fi

else
SEA #調用錯誤判斷函數

fi
done
unset i x y location rmso smso username password #釋放所有設定的變數

C. 嵌入式linux,用shell腳本實現修改root密碼,求教

關鍵是shell簡單的寫文件沒辦法同時改經過加密的/etc/shadow檔,我認為passwd在調用過程中會隱含修改shadow,你要用shell實現的話,必須在修改/etc/passwd的同時,也要按照相應方法計算出加密後的字元串,再用shell修改/etc/shadow。

D. 運行linux腳本,遇到要按回車鍵,怎麼讓它自動應答,繼續運行腳本

實現的方法和詳細的操作步驟如下:

1、第一步,連接相應的linux主機,進入linux命令行狀態,並等待輸入shell命令,見下圖,轉到下面的步驟。

E. 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可以從標准輸入或者管道接收密碼。

熱點內容
解壓分卷失敗 發布:2024-11-07 18:32:56 瀏覽:974
oracle導出資料庫表數據 發布:2024-11-07 18:24:57 瀏覽:449
java新建文件夾 發布:2024-11-07 18:24:21 瀏覽:640
服務的mysql腳本引導不上 發布:2024-11-07 18:19:25 瀏覽:878
win7下載文件夾恢復 發布:2024-11-07 18:18:36 瀏覽:221
酷狗號密碼忘了怎麼辦 發布:2024-11-07 18:03:13 瀏覽:87
mupdf編譯 發布:2024-11-07 18:02:58 瀏覽:32
sql時間篩選 發布:2024-11-07 17:59:53 瀏覽:860
為什麼開機密碼老不對 發布:2024-11-07 17:49:41 瀏覽:228
java源碼編譯 發布:2024-11-07 17:34:59 瀏覽:916