红联Linux门户
Linux帮助

求教 ,在线等答案。 Linux的编程脚本问题 高手指点下!!!

发布时间:2011-06-13 12:45:49来源:红联作者:306920686
[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]
文章评论

共有 7 条评论

  1. 于 2012-07-03 11:12:41发表:

    #echo newpassword| passwd username --stdin
    这样就不会交互了,但是有些操作系统不支持 --stdin

  2. yanyongkg 于 2011-06-14 16:21:50发表:

    [i=s] 本帖最后由 yanyongkg 于 2011-6-14 17:02 编辑 [/i]

    3楼我用chpasswd而没有用passwd来改密码。

    问题1之所以不好处理,是因为passwd改密码,它是个交互式的命令,需要用户自己输入密码确认,在脚本中感觉就不好处理了,其实还有是办法的,用 <
    user="testuser1 testuser2"
    for i in $user
    do
    passwd $i <yourpasswd
    yourpasswd
    EOF
    done[/code]

  3. 306920686 于 2011-06-14 16:19:25发表:

    谢谢哈。。。。。。

  4. 306920686 于 2011-06-14 16:19:22发表:

    谢谢哈。。。。。。

  5. 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

  6. 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]

  7. fffywfn123 于 2011-06-13 16:48:23发表:

    我也等着,可以用来做我们的作业题了