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. Linux,在shell脚本中实现用ssh或者telnet方式登录另一个linux主机,然后修改第二个linux上的一个文件。
#!/usr/bin/expect-f
settimeout30
setipaddr"192.168.0.100"#IP地址
setusername"root"#用户名
setpassword"password"#密码
spawnssh$username@$ipaddr
expect{
"yes/no"{send"yes ";exp_continue}
"password:"{send"$password "}
}
expect"]#"#用户的提示符,根据需要修改一下
send"ls "#执行的命令,换成自己修改文件的
send"exit "
expecteof
exit
C. 求一个批量ssh登录linux服务器,修改配置文件的脚本参考一下。
1、可以配置无密码访问或者用sshpass在shell中存密码
2、实例
ip.txt包含ip列表,每行一个ip
test.sh保护修改配置的命令或者直接修改好,复制到远程指定路径。
3、代码
#!/bin/sh
for ip in `cat ip.txt`; do
echo ${ip};
scp -P22 test.sh root@${ip}:/opt;
ssh -p22 root@$ip "cd /opt;./test.sh;"
done
exit 0;
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可以从标准输入或者管道接收密码。
F. linux淇鏀硅剼链𨱒冮檺linux淇鏀硅剼链
linux濡备綍杩愯宻h鑴氭湰锛
Linux涓镓ц宻hell鑴氭湰镄4绉嶆柟娉曟荤粨,鍗冲湪Linux涓杩愯宻hell鑴氭湰镄4绉嶆柟娉:
鏂规硶涓锛氩垏鎹㈠埌shell鑴氭湰镓鍦ㄧ殑鐩褰曪纸姝ゆ椂锛岀О涓哄伐浣灭洰褰曪级镓ц宻hell鑴氭湰
鏂规硶浜岋细浠ョ粷瀵硅矾寰勭殑鏂瑰纺铡绘墽琛宐ashshell鑴氭湰
鏂规硶涓夛细鐩存帴浣跨敤bash鎴杝h𨱒ユ墽琛宐ashshell鑴氭湰
鏂规硶锲涳细鍦ㄥ綋鍓岖殑shell鐜澧冧腑镓ц宐ashshell鑴氭湰
linux鑴氭湰镐庝箞瀹氢箟瀛楃︿覆锛
鍙浠ヤ娇鐢╡val锻戒护銆俥val锻戒护锛屽傚悓镡熸倝镄勫叾浠栬剼链璇瑷锛屼细灏嗗畠镄勫弬鏁板仛涓哄懡浠ゆ墽琛屻俥val锻戒护灏嗕细棣栧厛镓鎻忓懡浠よ岃繘琛屾墍链夌殑镟挎崲锛岀劧钖庡啀镓ц屽懡浠ゃ傝ュ懡浠や娇鐢ㄤ簬闾d簺涓娆℃壂鎻忔棤娉曞疄鐜板叾锷熻兘镄勫彉閲忋傝ュ懡浠ゅ瑰彉閲忚繘琛屼袱娆℃壂鎻忋傝繖浜涢渶瑕佽繘琛屼袱娆℃壂鎻忕殑鍙橀噺链夋椂鍊栾绉颁负澶嶆潅鍙橀噺銆傚懡浠ゆ牸寮忥细eval琛ュ厖璇存槑锛欤val鍙璇诲彇涓杩炰覆镄勫弬鏁帮纴铹跺悗鍐崭緷鍙傛暟链韬镄勭壒镐ф潵镓ц屻傚弬鏁颁笉闄愭暟鐩锛屽郊姝や箣闂寸敤鍒嗗彿鍒嗗紑銆傜敤娉旷ず渚嬶细灏嗗瓧绗︿覆鍙橀噺s镄勫间綔涓哄懡浠ゆ墽琛宻=lseval$s
linux缂栧啓鑴氭湰𨱒冮檺涓嶅熸庝箞瑙e喅锛
𨱒冮檺涓嶅熷彲浠ラ氲繃su锻戒护鍒囨崲鍒皉oot鐢ㄦ埛𨱒ヨ繍琛屽懡浠ゃ傞渶瑕佽緭鍏root鐢ㄦ埛镄勫瘑镰併
鐢ㄦ硶绀轰緥锛氩垏鎹㈠埌root鐢ㄦ埛$su鏂规硶浜岋细浣跨敤sudo锻戒护锛岄拡瀵瑰崟涓锻戒护鎺堜篑涓存椂𨱒冮檺銆俿udo浠呭湪闇瑕佹椂鎺堜篑鐢ㄦ埛𨱒冮檺锛屽噺灏戜简鐢ㄦ埛锲犱负阌栾镓ц屽懡浠ゆ崯鍧忕郴缁熺殑鍙鑳芥с
sudo涔熷彲浠ョ敤𨱒ヤ互鍏朵粬鐢ㄦ埛韬浠芥墽琛屽懡浠ゃ
linux镐庝箞杩愯宲ython鑴氭湰锛
linux链変笅鍒楃殑鍑犵嶆柟娉曟潵杩愯宲ython鑴氭湰锛
锛堟敞:鎴戞墍鐢ㄧ殑python鐜澧冧负2.6锛
涓.缁堢锻戒护琛屼笅
$python"name.py"
浜.python鐜澧冧腑
鑻ヨ剼链钖岖О涓簄ame.py锛
鍏跺唴瀹逛负锛
a='head'
b='hehe'
print(a,b)
鍒欎娇鐢
>>>impportname
阍埚规ょ嶆柟娉曟垜浠浣跨敤涓嬮溃镄勮鍙ユ潵鏄剧ず鍐呭癸细
>>>print(name.a)
>>>head
>>>print(name.b)
>>>hehe
鍦ㄥ悓涓涓猵ython鐜澧冧腑锛岀涓娆import锷犺浇浠ュ悗锛屼互钖庡啀浣跨敤import灏变笉浼氭湁鐩稿簲镄勭粨鏋沧樉绀轰简锛屽湪
杩欎釜镞跺椤彲浠ヤ娇鐢>>>reload锛坣ame锛夊湪python3.0涓鍙鑳借佸姞杞絠pm妯″潡镓嶈兘浣跨敤reload锛堬级鍑芥暟
>>>fromimpimportreload
>>>reload(name)
涓.浣跨敤from
锅囱捐剼链镄勫悕绉颁负name.py
name.py镄勫唴瀹逛负锛
a='head'
b='hehe'
print(a,b)
鍙浠ヤ娇鐢ㄤ笅杈圭殑鏂规硶𨱒ヨ繍琛岃剼链锛
>>>fromnameimporta,b,c
鍦ㄨ繖涓猵ython鐜澧冧腑鎴戜滑灏卞彲浠ヤ娇鐢ㄧ亩鍗旷殑鍙橀噺钖嶆潵璋幂敤鍏跺唴瀹逛简銆俥g:
>>>a
>>>'head'
>>>b
>>>'hehe'
锲.浣跨敤exec
鏂规硶涓猴细
>>>exec(open('name.py').read())
NOTICE:鍦ㄤ笂闱㈢殑鏂规硶涓锛岀涓夌嶅拰绗锲涚嶆柟娉曚细榛樿よ嗙洊python鐜澧冧腑宸茬粡瀛桦湪镄勪笖鍜宯ame.py涓
链夐吨钖岖殑鍙橀噺钖嶏纴涓旂郴缁熶笉浼氱粰鍑烘彁绀猴纴璇锋敞镒忚繖涓镣癸紒锛侊紒
G. 嵌入式linux,用shell脚本实现修改root密码,求教
关键是shell简单的写文件没办法同时改经过加密的/etc/shadow档,我认为passwd在调用过程中会隐含修改shadow,你要用shell实现的话,必须在修改/etc/passwd的同时,也要按照相应方法计算出加密后的字符串,再用shell修改/etc/shadow。