shell脚本密码
❶ SHELL脚本切换用户需输入密码
正常情况下,使用su - username的方式,普通用户切换都需要输入密码的,只有root su的时候才不需要
❷ shell脚本可以加密吗
第一种方法(gzexe):
这种加密方式不是非常保险的方法,但是能够满足一般的加密用途,可以隐蔽脚本中的密码等信息。它是使用系统自带的gzexe程序,它不但加密,同时压缩文件。
使用方法: gzexe file.sh
它会把原来没有加密的文件备份为file.sh~ ,同时 file.sh 即被变成加密文件;
第二种方法(shc):
使用 shc 对 linux shell 脚本加密.
shc是一个专业的加密shell脚本的工具.它的作用是把shell脚本转换为一个可执行的二进制文件,这个办法很好的解决了脚本中含有IP、密码等不希望公开的问题.
❸ 如何在Shell脚本输入密码
这问题太广泛了。想到其中一种可能,下面答案来自
Linux命令大全 网站
终端输入密码时候,不让密码显示出来的例子。
方法1:
#!/bin/bash
read-p"输入密码:"-spwdecho
echopasswordread,is"$pwd"
方法2:
#!/bin/bash
stty-echo
read-p"输入密码:"pwd
sttyecho
echo
echo输入完毕。
❹ 如何使用shell脚本修改linux的登陆密码
编写mssh.sh脚本
内容如下
1.
#!/usr/bin/expect
-f
2.
#auto
ssh
login
3.
set
timeout
30
4.
set
sshhost
[lindex
$argv
0]
5.
spawn
ssh
-llizongbo
-p13800
$sshhost
6.
expect
“password:”
7.
send
“lizongbo_618119\r”
8.
interact
给文件加上可执行权限
chmod
+x
./mssh.sh
如果文件默认有其它权限,建议最好设置为只能自己读取,修改和执行
chmod
700
./mssh.sh
测试成功:
./mssh.sh
618119.com
直接登录到了
618119.com
❺ linux shell脚本,运行时要输入密码,密码正确才往下跑,这个怎么实现呢
A=123456
read-p"请输入密码:"PASSWD
if["$PASSWD"=="$A"];then
continue
else
echo"密码不错误,请重启输入!"
fi
❻ 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 选项。
❼ 关于telnet自动登录shell脚本密码输入的问题
试试expect
spawn telnet $ip
expect “password:”
send “${password}\r”
interact
❽ 如何在shell脚本中实现 scp 文件的时候不手动输入密码
在shell脚本中实现 scp 文件的时候不手动输入密码的脚本如下:
#!/usr/bin/expect -f
set password 密码
spawn scp 用户名@目标机器ip:拷贝文件的路径 存放本地文件的路径
set timeout 300
expect "用户名@目标机器ip's password:" #(注意:这里的“用户名@目标机器ip” 跟上面的一致)
set timeout 300
send "$password "
set timeout 300
send "exit "
expect eof
附:scp参数
-r:拷贝目录
-c:允许压缩
一个完整的例子
#!/usr/bin/expect -f
set password 123456
#download
spawn scp [email protected]:/root/a.wmv /home/yangyz/
set timeout 300
expect "[email protected]'s password:"
set timeout 300
send "$password "
set timeout 300
send "exit "
expect eof
#upload
spawn scp /home/yangyz/abc.sql [email protected]:/root/test.sql
set timeout 300
expect "[email protected]'s password:"
set timeout 300
send "$password "
set timeout 300
send "exit "
expect eof
❾ 如何使用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 来登录系统,密码修改完毕.
❿ shell脚本怎么实现输入交互密码
mysql:./mysql -uroot -p'123456789' 还可以使用 shell 中的read函数 让执行者输入密码后在执行mysql read -p "Enter DB PWD: " echo “mysql -uroot -p'$REPLY'."