通过脚本更改AIX密码?

Gru*_*n94 36 passwords ssh bash shell aix

我试图通过脚本更改用户的密码.我不能使用sudo,因为有一项功能要求用户在其他用户更改密码时再次更改密码.

AIX正在系统上运行.

不幸的是,chpasswd不可用.

我预计会安装,但我也遇到了麻烦.

这是我认为会起作用的

echo "oldpassword\nnewpasswd123\nnewpasswd123" | passwd user
Run Code Online (Sandbox Code Playgroud)

但是,一旦运行脚本我提示please enter user's old password 不应该全部回应?

我是shell脚本的初学者,这令人困惑.

Man*_*nde 75

你可以试试:

echo "USERNAME:NEWPASSWORD" | chpasswd

  • 对我来说,chpasswd似乎是正确的答案.为我工作设置了Docker镜像.我喜欢以下(在bash中)以避免'echo'噪音:`chpasswd <<<"$ USERNAME:$ PASSWORD"` (8认同)
  • 为了它对我有用,我不得不把它改成:`echo"USERNAME:NEWPASSWORD"| sudo chpasswd`在通过非sudo父脚本执行时 (4认同)

Jua*_*doy 21

使用GNU passwd stdin标志.

man页面:

   --stdin
          This option is used to indicate that passwd should read the new password from standard input, which can be a pipe.
Run Code Online (Sandbox Code Playgroud)

注意:仅适用于root用户.

$ adduser foo 
$ echo "NewPass" |passwd foo --stdin
Changing password for user foo.
passwd: all authentication tokens updated successfully.
Run Code Online (Sandbox Code Playgroud)

或者你可以使用expect,这个简单的代码将做到这一点:

#!/usr/bin/expect
spawn passwd foo
expect "password:"
send "Xcv15kl\r"
expect "Retype new password:"
send "Xcv15kl\r"
interact
Run Code Online (Sandbox Code Playgroud)

结果

$ ./passwd.xp 
spawn passwd foo
Changing password for user foo.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.
Run Code Online (Sandbox Code Playgroud)


小智 7

除了其他建议,您还可以使用HEREDOC实现此目的.

在您的情况下,这可能看起来像:

$ /usr/bin/passwd root <<EOF
test
test
EOF
Run Code Online (Sandbox Code Playgroud)


小智 6

您需要echo -e才能使换行符符号生效

你写了

echo "oldpassword\nnewpasswd123\nnewpasswd123" | passwd user
Run Code Online (Sandbox Code Playgroud)

你应该试试

echo -e "oldpassword\nnewpasswd123\nnewpasswd123" | passwd user
Run Code Online (Sandbox Code Playgroud)

很可能,你不需要该命令的oldpassword \n部分,你应该只需要两个新密码.不要忘记在感叹号周围使用单引号!

echo -e "new"'!'"passwd123\nnew"'!'"passwd123" | passwd user
Run Code Online (Sandbox Code Playgroud)


Teh*_*sFR 3

你可以试试 :

echo -e“newpasswd123\nnnewpasswd123”| 密码用户