欢迎来到天天文库
浏览记录
ID:35976067
大小:20.24 KB
页数:6页
时间:2019-04-29
《新增资源及索引表-王辉静项目2拓展资源_Linux中shell脚本如何自动输入密码.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、inux中shell脚本如何自动输入密码 shell脚本在处理自动循环或大的任务方面可节省大量的时间,通过创建一个处理任务的命令清单,使用变量、条件、算术和循环等方法快速创建脚本以完成相应工作,这比在命令行下一个个敲入命令要省时省力得多。 但是有时候我们可能会需要实现和交互程序如ftp,telnet服务器等进行交互的功能,这时候我们需要用到shell的自动交互功能. 最简单的例子就是创建用户,我创建100个用户,初始密码为123,那么要是挨着passwdusername,交互性输入密码,那不得疯掉,但是脚本里应该怎么写呢?将密码123,输入到passwd命令? 本文收集了
2、较常用交互方法,并进行了比较和总结。 自动交互方法一:利用命令的自带参数,将标准输入作为手动输入的内容 自动交互最关键的就是交互信息的自动输入,首先联想到文件重定向,在shell编程中有这样一种用法(参考Linux与UNIX SHELL编程指南chapt5.7):"command<<=""> 重定向操作符command<<=""> 对于需求1要求的自动登陆ftp,并作系列操作,则可以用这种方法进行自动交互。代码如下: [yjwan@test~]$ftp-i-n192.168.21.46< userdbftpdbftp101 ls
3、EOF 下面是得到的结果: Connectedto192.168.21.46. 220developerjailFTPserver(Version6.00LS)ready. 331Passwordrequiredfordbftp. 230Userdbftploggedin. RemotesystemtypeisUNIX. Usingbinarymodetotransferfiles. 229EnteringExtendedPassiveMode(
4、
5、
6、54281
7、) 150OpeningASCIImodedataconnectionfor'/bin/ls'.
8、total8847424 -rw-r--r--1dbftpwww9055318991Aug 28 14:28ewiz90.sql_2010-08-29 226Transfercomplete. 221Goodbye. 测试可以发现,如上代码使用帐号名dbftp,密码dbftp101成功登陆了ftp服务器,并进入目录,ls出当前目录的文件。 注意事项: 1这里一定要加-i,否则必定失败!! 这里ftp用的-I参数结束了交互式输入,因此可以用文本的方式自动地输入用户密码以及操作方式 如果不用-I参数,那么必定要求你手动输入密码的!!那么就达不到自动登陆的要求了 你可
9、以manftp找到这个参数 -i关闭多文件传送中的交互式提示。请参考prompt、mget、mput和mdelete子命令,以取得多文件传送中的提示的描述。 -n防止在起始连接中的自动登录。否则,ftp命令会搜索$HOME/.netrc登录项,该登录项描述了远程主机的登录和初始化过程。请参考user子命令。 2举一反三:只要是要求输入密码的命令,一般都带有一个参数,允许你从标准输入,输入用户密码,以及操作。 其他常用的自动登陆命令的参数 1)Passwd命令 Linux下Passwd有参数 --stdin Thisoptionisusedtoindicatetha
10、tpasswdshouldreadthenewpasswordfromstandardinput,whichcanbea pipe. 所以linux下自动改变用户密码的办法就是 Echo密码
11、passwd–stdin用户名 Freebsd没有以上参数注意 他的方法是echopasswd
12、pwmoduserusername-h0 2)smbpasswd -s Thisoptioncausessmbpasswdtobesilent(i.e.notissueprompts) andtoreaditsoldandnewpasswordsfromstandardinput,
13、rather thanfrom/dev/tty(likethepasswd(1)programdoes).Thisoption istoaidpeoplewritingscriptstodrivesmbpasswd 3)sudo 在shell脚本中需要用root用的来执行指令: sudo自动输入密码 echo"password"
14、sudo-Snetstat-tlnp -S The-S(stdin)optioncausessudotoreadthepasswordf
此文档下载收益归作者所有