用shell脚本实现如下需求:
添加user_00 - user_09 10个用户,并且给他们设置一个随机密码,密码要求10位包含大小写字母以及数字,注意需要把每个用户的密码记录到一个日志文件里。
提示:
1. 随机密码使用命令 mkpasswd
2. 在脚本中给用户设置密码,可以使用echo 然后管道passwd命令
添加user_00 - user_09 10个用户,并且给他们设置一个随机密码,密码要求10位包含大小写字母以及数字,注意需要把每个用户的密码记录到一个日志文件里。
提示:
1. 随机密码使用命令 mkpasswd
2. 在脚本中给用户设置密码,可以使用echo 然后管道passwd命令
0
思路:
for(i in seq 0 9){
pass = mkpasswd
username = 'user_0' + i
useradd useradd -p pass
echo pass,username > log
}
语法忘记得7788 ,准备重拾。
for(i in seq 0 9){
pass = mkpasswd
username = 'user_0' + i
useradd useradd -p pass
echo pass,username > log
}
语法忘记得7788 ,准备重拾。
0
for i in ` seq 0 9 `; do
username='user0'
useradd $username$i
password=mkpassword -d -c -l10
echo "password" >>1.log
done
username='user0'
useradd $username$i
password=mkpassword -d -c -l10
echo "password" >>1.log
done
0
本帖最后由 第六感 于 2014-1-8 16:41 编辑
#!/bash/bin
for i in `seq 0 9`;do
user=user_0$i
pas=`mkpasswd -l 10 -s 0`
useradd $user
echo -e "$pas\n$pas" | passwd $user
echo $user $pas>>1.log
done
#!/bash/bin
for i in `seq 0 9`;do
user=user_0$i
pas=`mkpasswd -l 10 -s 0`
useradd $user
echo -e "$pas\n$pas" | passwd $user
echo $user $pas>>1.log
done
0
for n in `seq 0 9`
do
useradd user$n
passwd=mkpasswd
useradd user$n -p passwd
done
echo user$n,passwd >xx.log
do
useradd user$n
passwd=mkpasswd
useradd user$n -p passwd
done
echo user$n,passwd >xx.log
0
本帖最后由 SHMILY 于 2014-1-8 15:43 编辑
#!/bin/bash
#循环创建用户及密码
userlist=$(seq -f"user_%02g" 1 10)
for NAME in $userlist
do
echo $NAME ; useradd $NAME ; sleep 1
PASSWD=$(mkpasswd -l 10 -s 0)
echo "$NAME $PASSWD" >>password.txt
echo $PASSWD | passwd --stdin $NAME
done
echo "完成"
#!/bin/bash
#循环创建用户及密码
userlist=$(seq -f"user_%02g" 1 10)
for NAME in $userlist
do
echo $NAME ; useradd $NAME ; sleep 1
PASSWD=$(mkpasswd -l 10 -s 0)
echo "$NAME $PASSWD" >>password.txt
echo $PASSWD | passwd --stdin $NAME
done
echo "完成"
0
本帖最后由 tulip 于 2014-1-8 16:34 编辑
#!/bin/bash
#create user and set passwd automatically!
for i in `seq 0 9`;do
useradd user_0$i
j=`mkpasswd -l 10 -c 3`
echo $j | passwd --stdin user_0$i
echo user_0$i:$j >> /root/log.txt
done
#!/bin/bash
#create user and set passwd automatically!
for i in `seq 0 9`;do
useradd user_0$i
j=`mkpasswd -l 10 -c 3`
echo $j | passwd --stdin user_0$i
echo user_0$i:$j >> /root/log.txt
done
0
for i in `seq 0 9`;do #用循环实现批量
useradd user_0$i #创建用户
pass=$(mkpasswd -l 10) #获取随机密码
echo ${pass} >> userpass.txt #密码记录到日志文件
echo ${pass} |passwd --stdin user_0$i #设置密码
done
for i in `seq 0 9`;do #用循环实现批量
useradd user_0$i #创建用户
pass=$(mkpasswd -l 10) #获取随机密码
echo ${pass} >> userpass.txt #密码记录到日志文件
echo ${pass} |passwd --stdin user_0$i #设置密码
done
0
- #!/bin/bash
- #This is script is add users
- for i in `seq 0 9` ; do
- useradd user_0$i
- pass=`mkpasswd -l 10 -s 0`
- echo $pass |passwd --stdin user_0$i
- echo user_0$i:$pass >> user.txt
- done
0
#!/bin/bash
#add 10 user
#mkpasswd -- make a passwd
pass=`mkpasswd -l 10 -s 0`
for i in `seq 0 9`;do
useradd user_0$i
echo user_0$i : $pass >>user_passwd.log
done
#!/bin/bash
#add 10 user
#mkpasswd -- make a passwd
pass=`mkpasswd -l 10 -s 0`
for i in `seq 0 9`;do
useradd user_0$i
echo user_0$i : $pass >>user_passwd.log
done
0
#!/bin/bash
#
for i in `seq 0 9`
do
useradd user_0$i
user_password=`mkpasswd -l 10`
echo "the user_0$i password is:$user_password" >> /var/log/user_passwd.txt
echo $user_passwd | passwd --stdin user_$i
done
echo "complete!"
#
for i in `seq 0 9`
do
useradd user_0$i
user_password=`mkpasswd -l 10`
echo "the user_0$i password is:$user_password" >> /var/log/user_passwd.txt
echo $user_passwd | passwd --stdin user_$i
done
echo "complete!"
0
本帖最后由 ocean 于 2014-9-17 21:19 编辑
[root@OceanV sh]# cat adduser.sh
#/bin/bash
#添加user_00 - user_09 10个用户,并且给他们设置一个随机密码,密码要求10位包含大小写字母以及数#字,注意需要把每个用户的密码记录到一个日志文件里。
for USERNAME in `seq -f"user_%02g" 0 9`;do
useradd $USERNAME
USERPWD=$(mkpasswd -l 10 -s 0)
echo $USERPWD | passwd --stdin $USERNAME
echo -e "$USERNAME $USERPWD\n" >>/var/log/accountinfo.txt
done
[root@OceanV sh]# cat adduser.sh
#/bin/bash
#添加user_00 - user_09 10个用户,并且给他们设置一个随机密码,密码要求10位包含大小写字母以及数#字,注意需要把每个用户的密码记录到一个日志文件里。
for USERNAME in `seq -f"user_%02g" 0 9`;do
useradd $USERNAME
USERPWD=$(mkpasswd -l 10 -s 0)
echo $USERPWD | passwd --stdin $USERNAME
echo -e "$USERNAME $USERPWD\n" >>/var/log/accountinfo.txt
done
0
#!/bin/bash
## This script is for useradd a kind of users and make passwords for them.
## Writed by Louis on 2014/08/31 09:30
log=userch.log
echo "`date +'%F %T'` try to add users." >> $log
for i in `seq 0 9`; do
if awk -F ':' '{print $1}' /etc/passwd|grep -oq user_0$i; then
echo "User user_0$i has been exist." >>$log #if user exist,do no add user.
elif awk -F ':' '{print $1}' /etc/group|grep -oq user_0$i; then
echo "Group user_0$i has been exist." >> $log #if group exist,do not add user.
else
useradd user_0$i > /dev/null 2>> $log
p=`mkpasswd -l 10 -s 0`
echo "Add user_0$i succeed" >> $log
echo $p >> $log
echo $p|passwd --stdin user_0$i > /dev/null 2>> $log
fi
done
## This script is for useradd a kind of users and make passwords for them.
## Writed by Louis on 2014/08/31 09:30
log=userch.log
echo "`date +'%F %T'` try to add users." >> $log
for i in `seq 0 9`; do
if awk -F ':' '{print $1}' /etc/passwd|grep -oq user_0$i; then
echo "User user_0$i has been exist." >>$log #if user exist,do no add user.
elif awk -F ':' '{print $1}' /etc/group|grep -oq user_0$i; then
echo "Group user_0$i has been exist." >> $log #if group exist,do not add user.
else
useradd user_0$i > /dev/null 2>> $log
p=`mkpasswd -l 10 -s 0`
echo "Add user_0$i succeed" >> $log
echo $p >> $log
echo $p|passwd --stdin user_0$i > /dev/null 2>> $log
fi
done
0
#!/bin/bash
for i in `seq 0 9`;do
pass=`mkpasswd -l 10 -s 0`
useradd user_0$i
echo "user_0$i $pass" >>/tmp/pass.txt
echo -e "$pass\n$pass\n" |passwd user_0$i
done
注:\n是第一次输入密码需要回车才能继续输入第二次重复密码。
-e 使得\n称为回车符
#!/bin/bash
for i in `seq 0 9`;do
pass=`mkpasswd -l 10 -s 0`
useradd user_0$i
echo "user_0$i $pass" >>/tmp/pass.txt
echo -e "$pass\n$pass\n" |passwd user_0$i
done
注:\n是第一次输入密码需要回车才能继续输入第二次重复密码。
-e 使得\n称为回车符
0
本帖最后由 cmzsteven 于 2015-2-8 15:59 编辑
#!/bin/bash
>passwd.txt
for i in `seq 0 9`; do
user="user0$i"
password=`mkpasswd -l 10`
useradd $user
echo $password| passwd $user --stdin
echo "$user:$password">>passwd.txt
done
chmod 600 passwd.txt
#!/bin/bash
>passwd.txt
for i in `seq 0 9`; do
user="user0$i"
password=`mkpasswd -l 10`
useradd $user
echo $password| passwd $user --stdin
echo "$user:$password">>passwd.txt
done
chmod 600 passwd.txt
0
#!/bin/bash
#
for i in `seq 0 9` ;
do
useradd user_0$i && mkpasswd -l 10 | passwd --stdin user_0$i
done
#
for i in `seq 0 9` ;
do
useradd user_0$i && mkpasswd -l 10 | passwd --stdin user_0$i
done
0
#! /bin/bash groupadd users for i in `seq 0 9`; do useradd -g users -M user_0$i /usr/bin/ircd-mkpasswd -l 10 -p plaintext user_0$i >> /root/password done
0
为何基本上我看的你的脚本 所有的要求不管是难的还是简单的 ,你的都是尽量的往多的写??? 代码少的脚本就能实现的功能,你为啥不简化???
Louis 发表于 2014-8-31 11:59
#!/bin/bash
## This script is for useradd a kind of users and make passwords for them.
## Writed b ...
为何基本上我看的你的脚本 所有的要求不管是难的还是简单的 ,你的都是尽量的往多的写??? 代码少的脚本就能实现的功能,你为啥不简化???
0
本帖最后由 sss 于 2015-6-11 14:52 编辑
- #!/bin/bash
- #Add user script
- #2015/05/18
- for i in `seq 0 9`
- do
- useradd user_0$i
- pass=`mkpasswd -l 10 -s 0`
- echo $pass | passwd --stdin user_0$i
- echo user_0$i:$pass >> user.txt
- done
0
哈,sorry啊,个人比较啰嗦,而且写脚本能力差,所以都会写得比较多。
在这个脚本中,我多加了一个考虑:已经存在的用户,不能直接改掉人家的密码,这样会影响在用这个用户的管理员。
sss 发表于 2015-6-11 14:45
为何基本上我看的你的脚本 所有的要求不管是难的还是简单的 ,你的都是尽量的往多的写??? 代码少的脚 ...
哈,sorry啊,个人比较啰嗦,而且写脚本能力差,所以都会写得比较多。
在这个脚本中,我多加了一个考虑:已经存在的用户,不能直接改掉人家的密码,这样会影响在用这个用户的管理员。
0
不知道怎么样
#!/bin/bash
for i in `seq -w 01 10`
do
b=`useradd user_"$i"`
a=`mkpasswd`
echo "$a"|passwd --stdin $b
echo "b:$a">>1.txt
done
#!/bin/bash
for i in `seq -w 01 10`
do
b=`useradd user_"$i"`
a=`mkpasswd`
echo "$a"|passwd --stdin $b
echo "b:$a">>1.txt
done
0
for i in `seq -w 00 09`
do
useradd -M user_"$i"
bb=`mkpasswd -l 10`
echo $bb >> /scripts/shell/user.log
echo $bb | passwd --stdin user_"$i"
done
for i in `seq -w 00 09`
do
useradd -M user_"$i"
bb=`mkpasswd -l 10`
echo $bb >> /scripts/shell/user.log
echo $bb | passwd --stdin user_"$i"
done
0
本帖最后由 307141950 于 2015-8-30 10:31 编辑
for i in `seq -w 01 09`
do
useradd user_$i
echo `/bin/htpasswd -l 10 -c -C -d ` |passwd user_$i
done
for i in `seq -w 01 09`
do
useradd user_$i
echo `/bin/htpasswd -l 10 -c -C -d ` |passwd user_$i
done
0
for i in `seq 0 9`;
do
a=`mkpasswd -l 10`
useradd user_0$i
echo $a|passwd --stdin user_0$i
echo user_0$i $a >>3.txt
done
do
a=`mkpasswd -l 10`
useradd user_0$i
echo $a|passwd --stdin user_0$i
echo user_0$i $a >>3.txt
done
0
- a=0
- until [ $a -gt 9 ]
- do
- user=user_0${a}
- useradd ${user}
- password=`mkpasswd -l 10 -C 2 -c 2 -d 2`
- echo ${password}|passwd --stdin ${user} 1>2&
- echo ${user}\'s password is : ${password} >> password.txt
- let a++
- done
0
#!/bin/bash n=1 for a in `seq -f"%02g" 00 09`; do useradd use_$a echo " username: use_$a " >>7.log echo "password: `use_$a|passwd`" >>7.log done
0
#!/bin/bash
for sum in `seq -w 1 10`
do
useradd user$sum
pass=$(mkpasswd -l 10 -c 2)
echo $pass | passwd --stdin user$sum
echo user$sum:$pass >> /tmp/user.txt
done
for sum in `seq -w 1 10`
do
useradd user$sum
pass=$(mkpasswd -l 10 -c 2)
echo $pass | passwd --stdin user$sum
echo user$sum:$pass >> /tmp/user.txt
done
0
- #!/bin/bash
- echo start
- for i in `seq 0 9`
- do
- username=user_0$i
- password=`mkpasswd -l 10 -s 0`
- echo username: $username , passwd: $password >> 2.txt
- useradd $username
- echo $password | passwd --stdin $username
- done
- echo "complete!"
0
- for i in `seq -w 0 9`
- do
- useradd user_0$i
- b=`mkpasswd -l 10`
- echo user_0$i:$b|chpasswd
- echo "user_0$i:$b" >> passwd.log
- done
0
#! /bin/bash
for i in `seq 0 9`
do
s=`mkpasswd -l 10 -C 3 -c 3 -d 1`
useradd user_0$i
echo $s |passwd --stdin user_0$i
echo "user_0$i:$s" >> 2.log
done
for i in `seq 0 9`
do
s=`mkpasswd -l 10 -C 3 -c 3 -d 1`
useradd user_0$i
echo $s |passwd --stdin user_0$i
echo "user_0$i:$s" >> 2.log
done
0
- #!/bin/bash
- for i in `seq 0 9`;do
- useradd user_0$i -M
- echo `mkpasswd` >>passwd.log
- cat passwd.log|tail -1 | passwd --stdin user_0$i
- done
0
#!/bin/bash
for i in `seq -w 00 9`
do pass=`mkpasswd -l 10`
useradd -M user_$i
echo "$pass" |passwd --stdin user_$i
echo "user_$i password is $pass" >> /tmp/pass.txt
done
for i in `seq -w 00 9`
do pass=`mkpasswd -l 10`
useradd -M user_$i
echo "$pass" |passwd --stdin user_$i
echo "user_$i password is $pass" >> /tmp/pass.txt
done
0
#!/bin/bash
exec >>/tmp/password.txt
for n in `seq -w 0 09`
do
/usr/sbin/useradd user_$n
echo $n
/usr/bin/mkpasswd -s 0 -l 10
m=`grep -A1 $n /tmp/password.txt |grep -v $n`
echo $m |passwd --stdin user_$n
done
exec >>/tmp/password.txt
for n in `seq -w 0 09`
do
/usr/sbin/useradd user_$n
echo $n
/usr/bin/mkpasswd -s 0 -l 10
m=`grep -A1 $n /tmp/password.txt |grep -v $n`
echo $m |passwd --stdin user_$n
done
0
for i in `seq 0 9`
5 do
6 pd=`mkpasswd -l 10 -s 0`
7 useradd user0$i
8 echo $pd| passwd --stdin user0$i
9 echo user0$i $pd >>1.txt
10 done
0
#! /bin/bash
for i in `seq -w 00 09`
do
useradd user_$i
passwd=`mkpasswd -l 10 -s 0`
echo $passwd | passwd --stdin user_$i
echo "user_$i $passwd" >> /tmp/1.txt
done
0
1、yum install -y expect 必须安装 ,这是mkpasswd
2、批量新增用户脚本
vi 1.sh
#!/bin/bash
for i in `seq -w 00 09`
do
useradd user_$i
pwd=`mkpasswd`
echo $pwd|passwd --stdin user_$i
#echo -e "user_$i\t $pwd" >> user.txt
echo "用户:user_$i 密码:$pwd" >>user.txt
done
3、批量删除用户脚本
vi 2.sh
#!/bin/bash
for i in `seq -w 00 09`
do
userdel -r user_$i && rm -rf user.txt
#useradd user_$i
#pwd=`mkpasswd`
#echo $pwd|passwd --stdin user_$i
#echo -e "user_$i\t $pwd" >> user.txt
#echo "用户:user_$i 密码:$pwd" >>user.txt
done
编辑回复