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可以从标准输入或者管道接收密码。