shell腳本用戶名密碼
A. 我要寫一個shell腳本,實現替換*.conf文件,怎麼實現執行腳本時手動修改conf文件中的用戶名、密碼
1、替換字元串
sed -i 's/user01/user02/g' u.conf
sed -i 's/password1/password2/g' u.conf
2、刪除相關行
sed -i '/user01/d' a.conf
或者刪除指定行
sed -i '20d' a.conf
3、在第20行添加內容
sed -i '20 r user.txt' a.conf
4、在user.start後面開始添加內容
sed -i '/user.start/r user.txt' b.conf
B. SHELL腳本切換用戶需輸入密碼
正常情況下,使用su - username的方式,普通用戶切換都需要輸入密碼的,只有root su的時候才不需要
C. 如何使用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 來登錄系統,密碼修改完畢.
D. shell腳本安裝phpmyadmin自動輸入用戶密碼
expect是自動交互程序,可以方便的在shell腳本中自動輸入mysql的帳號密碼。
shell腳本如何自動輸入mysql帳號密碼
在deepin linux下默認已安裝此程序,首先要獲取expect安裝程序的路徑,可以通過which命令來獲取。如果沒有安裝請自行安裝。
shell腳本如何自動輸入mysql帳號密碼
接下來就是建立一個腳本文件,這里命名為t.sh,然後用vim打開t.sh,在裡面編寫如下圖所示的代碼。代碼說明如下:
第一句:#!/usr/bin/expect就是在上面獲取的expect的安裝路徑,expect類似於一個shell,所以腳本的第一行指明通過expect來運行下面的指令。
第二句:設置延時為30秒。
第三句:spawn是expect的語句,執行命令前都要加這句
第四句:是發送的mysql root帳號的密碼666666,注意後面的\r即回車。
第五句:interact代表執行完留在遠程式控制制台
shell腳本如何自動輸入mysql帳號密碼
編寫完成後,執行vim的wq命令退出保存t.sh。
shell腳本如何自動輸入mysql帳號密碼
然後執行如下命令給t.sh加上可執行許可權。
sudo chmod 755 ./t.sh
shell腳本如何自動輸入mysql帳號密碼
然後執行t.sh就可以看到mysql自動輸入帳號密碼登錄了。
shell腳本如何自動輸入mysql帳號密碼
除了上面介紹的使用expect命令外,用戶也可以切換到root用戶下,在root用戶的家目錄,建立一個.my.cnf的文件,讓mysql本身實現免密碼登錄,這樣在shell腳本中只需要執行mysql命令即可自動登錄了,具體可以參考之前發布的經驗。
E. 寫一個shell腳本,要求輸入用戶名密碼,用戶名輸錯三次自動退出腳本,輸對則輸入密碼,求大神幫忙
#/bin/bash
let i=0
let j=0
while true
do
read -p '請輸入用戶名:' name
rname=`cat /autorun/script/passwd.conf |grep '\<'$name'\>'`
rname=${rname:=0}
if [ "$rname" = "0" ];then
echo "輸入的賬號不存在!"
let i=i+1
if [ "$i" = "3" ];then
echo "賬號已輸入三次!"
break
fi
else
let i=0
while true
do
read -p '請輸入密碼:' pass
rpass=`cat /autorun/script/passwd.conf |grep '\<'$name'\>'|awk '{print $2}'`
if [ "$pass" = "$rpass" ];then
echo "登陸成功!"
let i=0
break
else
echo "密碼輸入錯誤"
let j=j+1
if [ "$j" = "3" ];then
echo "密碼已輸入三次!"
break
fi
fi
done
break
fi
done
F. 如何使用crontab調度一個執行一個shell腳本時需要輸入用戶名和密碼
linux下使用crontab命令被用來提交和管理用戶的需要周期性執行的任務,示例如下:
crontab -e 編輯周期任務
30 21 * * * /etc/init.d/smb restart 每晚的21:30重啟smb
crontab命令說明:
crontab命令被用來提交和管理用戶的需要周期性執行的任務,與windows下的計劃任務類似,當安裝完成操作系統後,默認會安裝此服務工具,並且會自動啟動crond進程,crond進程每分鍾會定期檢查是否有要執行的任務,如果有要執行的任務,則自動執行該任務。
語法
crontab(選項)(參數)
選項
-e:編輯該用戶的計時器設置;
-l:列出該用戶的計時器設置;
-r:刪除該用戶的計時器設置;
-u:指定要設定計時器的用戶名稱。
參數
crontab文件:指定包含待執行任務的crontab文件。
知識擴展
Linux下的任務調度分為兩類:系統任務調度和用戶任務調度。
系統任務調度:系統周期性所要執行的工作,比如寫緩存數據到硬碟、日誌清理等。在/etc目錄下有一個crontab文件,這個就是系統任務調度的配置文件。
crontab文件的含義:
用戶所建立的crontab文件中,每一行都代表一項任務,每行的每個欄位代表一項設置,它的格式共分為六個欄位,前五段是時間設定段,第六段是要執行的命令段,格式如下:
minute hour day month week command 順序:分 時 日 月 周
其中:
minute: 表示分鍾,可以是從0到59之間的任何整數。
hour:表示小時,可以是從0到23之間的任何整數。
day:表示日期,可以是從1到31之間的任何整數。
month:表示月份,可以是從1到12之間的任何整數。
week:表示星期幾,可以是從0到7之間的任何整數,這里的0或7代表星期日。
command:要執行的命令,可以是系統命令,也可以是自己編寫的腳本文件。
在以上各個欄位中,還可以使用以下特殊字元:
星號(*):代表所有可能的值,例如month欄位如果是星號,則表示在滿足其它欄位的制約條件後每月都執行該命令操作。
逗號(,):可以用逗號隔開的值指定一個列表范圍,例如,「1,2,5,7,8,9」
中杠(-):可以用整數之間的中杠表示一個整數范圍,例如「2-6」表示「2,3,4,5,6」
正斜線(/):可以用正斜線指定時間的間隔頻率,例如「0-23/2」表示每兩小時執行一次。同時正斜線可以和星號一起使用,例如*/10,如果用在minute欄位,表示每十分鍾執行一次。
G. 用shell腳本寫ftp時,怎麼自動填寫用戶名和密碼,而不用執行shell腳本後手動輸入用戶名和密碼
用
ftp -n <<EOF
H. linux shell 腳本如何實現批量添加用戶(用戶名是不規則的)並初始化用戶密碼為用戶名
首先要了解,添加一個用戶不過是在passwd文件裡面寫入一行數據而已!所以呢,只要按照格式寫就好了!
使用newuser和chpasswd工具即可批量添加用戶以及創建密碼!但要事先寫好列表,使用newuser工具導入passwd文件中。格式要遵循passwd文件的格式!以及密碼列表,格式為user:passwd,使用chpasswd將其寫入passwd文件中,之後需要創建密文,用pwconv工具即可。如果之前你的passwd使用密文需要先將密文轉換為明文,之後在進行密碼列表導入。pwunconv
I. 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 選項。
J. 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可以從標准輸入或者管道接收密碼。