免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1325 | 回复: 8
打印 上一主题 下一主题

求助!如何通过菜单修改用户密码? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-01-29 10:58 |只看该作者 |倒序浏览
要求是建立一个菜单,自动读取/etc/passwd中uid大于200的用户,显示列表,然后通过选择修改相应密码。

我已完成了一个用户修改其他用户密码的方法

先谢谢!

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
2 [报告]
发表于 2005-01-29 12:37 |只看该作者

求助!如何通过菜单修改用户密码?


  1. passwd --stdin 123456 $(awk -F: '$3>200{print $1}')
复制代码

论坛徽章:
0
3 [报告]
发表于 2005-01-29 13:44 |只看该作者

求助!如何通过菜单修改用户密码?

老大,报错!
syntax error:"(" unexpected

我想显示成这种菜单模式


-------------
1.   xxxxx
2.   xxxxx
3.   xxxxx
--------------
select :

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
4 [报告]
发表于 2005-01-29 14:04 |只看该作者

求助!如何通过菜单修改用户密码?

大致结构

  1. #!/bin/bash
  2. cat <<!
  3. 1:xxx
  4. 2:yyy
  5. !
  6. echo -n "select:"
  7. read input
  8. case $input in
  9. 1)      passwd --stdin xxx;echo ok;;
  10. 2)      passwd --stdin yyy;echo ok;;
  11. *)      echo "error";;
  12. esac
复制代码

论坛徽章:
0
5 [报告]
发表于 2005-01-29 14:13 |只看该作者

求助!如何通过菜单修改用户密码?

是这样的,但
1xx
2:yyy
...
是通过/etc/passwd获得的,也就是说,一个shell在不同的机器上获得不同的用户列表

论坛徽章:
0
6 [报告]
发表于 2005-01-29 15:19 |只看该作者

求助!如何通过菜单修改用户密码?

父shell程序负责取得列表,子shell程序负责生成菜单及其功能
实现方法:
父shell程序取得列表后,将列表中内容循环入变量,利用此变量构造子程序的所有命令,构造好后执行。
注意几点,
1.构造前判断childshell是否存在,存在的话先>childshell.sh
2.构造时用echo "……" >>childshell.sh
3.构造好后别忘记chmod +x childshell.sh

论坛徽章:
0
7 [报告]
发表于 2005-01-29 15:41 |只看该作者

求助!如何通过菜单修改用户密码?

自己写了下,各位老大帮优化下
#!/bin/sh
echo "-----------------------------------------------" >> pswd.msg
clear
succ(){
        passwd  $1
        echo "passwd $1" >> pswd.msg
        date >> pswd.msg
        echo "asswd $1 Successful!!"
        echo "ress Enter Continue ... \c"
        read tt
}
            
trap '' 0 2 15
whlie :
do
clear
echo "\n\n\t\t\t\t 修改用户密码 "
echo "\t\t\t------------------------------"

awk ' BEGIN { FS=":" ; } {print $1,$3 ;} ' pswd|sed -n '/[2-9][0-9][0-9]/p'|\
awk '{print NR,$1}' > pswd.tmp
awk '{print "\t\t\t",$1,"  修改",$2,"用户密码" ;}' pswd.tmp

echo "\t\t\t 0   退 出"
echo "\t\t\t------------------------------"
echo "\t\t\t\t 请选择:\c"
read choice
AWKUSER=`awksel="$choice"; awk '$1 ==sel  {print $2;}' sel="$awksel" pswd.tmp`
        if [ $choice != 0 ]   && [ $choice -le `wc -l pswd.tmp` ];
        then         
           succ $AWKUSER
        else
           echo "用户选择退出!"
           exit
        fi
done

论坛徽章:
0
8 [报告]
发表于 2005-01-29 22:05 |只看该作者

求助!如何通过菜单修改用户密码?

  
搞什么呢,那么长,没耐心看,自己写一个,你试试
  1. #!/bin/bash
  2. PS3="choose user:"
  3. while :
  4. do
  5.         clear
  6.         select un in $(awk -F":" '$3>200{print $1}' /etc/passwd)
  7.         do
  8.         passwd $un
  9.         break
  10.         done
  11. done
复制代码

论坛徽章:
0
9 [报告]
发表于 2005-02-01 09:18 |只看该作者

求助!如何通过菜单修改用户密码?

thx
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP