Chinaunix首页 | 论坛 | 博客
  • 博客访问: 404658
  • 博文数量: 65
  • 博客积分: 2711
  • 博客等级: 少校
  • 技术积分: 745
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-02 10:02
文章分类

全部博文(65)

文章存档

2013年(4)

2012年(3)

2011年(24)

2010年(21)

2009年(11)

2008年(2)

分类: LINUX

2010-03-03 15:57:40

实验操作系统:redhat-as4、as5
 
自己使用重定向方案写的简单的更改用户密码口令脚本:
 
[root@webtoto /]# cat aa.sh
passwd nmg001 << EOF
nmg001
nmg001
EOF
[root@webtoto /]#
 
在as5系统上能够顺利执行,可是在as4上就会报错:
 
as5:
[root@dmtzlk ~]# sh aa.sh
Changing password for user bjj001.
New UNIX password: BAD PASSWORD: it does not contain enough DIFFERENT characters
Retype new UNIX password: passwd: all authentication tokens updated successfully.
[root@dmtzlk ~]#
 
 
as4:
[root@webtoto /]# sh aa.sh
Changing password for user nmg001.
New UNIX password: Retype new UNIX password: Sorry, passwords do not match
New UNIX password: BAD PASSWORD: it is WAY too short
Retype new UNIX password: No password supplied
No password supplied
No password supplied
passwd: Authentication token manipulation error
[root@webtoto /]#
 
 
最后在论坛里发帖,经过一个高人指点,原来是两个操作系统对于passwd命令的标准输入控制不一样,rh4的passwd默认是不允许标准输入的,而rh5是允许的,因此才会产生我这样的问题。
 
在as4操作系统下对脚本里passwd加上参数--stdin,问题解决:
 
[root@webtoto /]# cat aa.sh
passwd --stdin nmg001 << EOF
nmg001
nmg001
EOF
[root@webtoto /]# sh aa.sh
Changing password for user nmg001.
passwd: all authentication tokens updated successfully.
[root@webtoto /]#
 
--stdin参数含义:
       --stdin
              This option is used to indicate that passwd should read the new
              password from standard input, which can be a pipe.
 
 
知识点: 标准输入的重定向,passwd用法。
为什么两个版本系统的passwd命令默认参数不一样呢?应该是有类似于配置文件或者环境的地方做了控制,到目前还没有找到。需要继续研究。
 
问题原帖:
阅读(2393) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~