[font=楷体_GB2312][size=7][size=5]1: 编写脚本 password.sh 自动配置所有普通用户密码都是123456, 每设置一个用户密码就显示“The user 用户名 password is ok !”
2: 编写脚本 change.sh 自动修改所有普通用户密码最短天数是1天 ,密码最长天数是100天,警告天数是5天,宽限时间是3天
每修改完一个用户密码属性就显示如下面所示效果:
The user 用户名 mindays is 1
The user 用户名 maxdays is 100
The user 用户名 wamdays is 5
The user 用户名 inactivedays is 3[/size][/size][/font]
于 2012-07-03 11:12:41发表:
#echo newpassword| passwd username --stdin
这样就不会交互了,但是有些操作系统不支持 --stdin
yanyongkg 于 2011-06-14 16:21:50发表:
[i=s] 本帖最后由 yanyongkg 于 2011-6-14 17:02 编辑 [/i]
yourpasswd
3楼我用chpasswd而没有用passwd来改密码。
问题1之所以不好处理,是因为passwd改密码,它是个交互式的命令,需要用户自己输入密码确认,在脚本中感觉就不好处理了,其实还有是办法的,用 <
user="testuser1 testuser2"
for i in $user
do
passwd $i <
yourpasswd
EOF
done[/code]
306920686 于 2011-06-14 16:19:25发表:
谢谢哈。。。。。。
306920686 于 2011-06-14 16:19:22发表:
谢谢哈。。。。。。
yanyongkg 于 2011-06-13 20:11:11发表:
[i=s] 本帖最后由 yanyongkg 于 2011-6-13 22:23 编辑 [/i]
问题2[code]#!/bin/bash
userlist=$(awk 'BEGIN{FS=":"};{if($3 >= 500 && $7 !~ "/sbin/nolo\
gin") print $1}' /etc/passwd)
for i in $userlist
do
passwd -n 1 -x 100 -w 5 -i 3 "$i"
echo "The user $i mindays is 1"
echo "The user $i maxdays is 100"
echo "The user $i wamdays is 5"
echo "The user $i inactivedays is 3"
done[/code]PS:刚才测试问题1时awk匹配错误结果误把所有的用户包括系统用户的密码都初始化为123456了:0L
yanyongkg 于 2011-06-13 19:46:13发表:
问题1:[code]#!/bin/bash
userlist=$(awk 'BEGIN{FS=":"};{if($3 >= 500 && $7 !~ "/sbin/nolo\
gin") printf $1"\n"}' /etc/passwd)
for i in $userlist
do
chpasswd <<< "$i:123456"
echo "The user $i password is ok!"
done[/code]
fffywfn123 于 2011-06-13 16:48:23发表:
我也等着,可以用来做我们的作业题了