Passwd without prompt

Hi,
I 'd like add a user on multiple servers and automatize password's prompt.

echo "$PASSWORD" | passwd --stdin "$user"

I have tried this command to pass the password through the pipe but that isn't word with passwd.

Someone know who automatize this step ?
Thank you.
(Openserver 6.0)

Use the 'ap' command.
Complete the addition of the user on the first machine then:

ap -d user >/tmp/user.data

copy the file tmp/user.data to the rest of the machines, and on each of them:

ap -r -f /tmp/user.data

The user will have the same user profile ( not .profile) and user id on every machine along with the correct privileges and authority and groups.
You still have to copy any .profile to the various machines.

Thanks for quick reply.

Same issue I've to use rcp to paste my user.data on each server which prompt a passwd :cry:
May I find an other bin compilate like chpasswd or .... ????

Create a .netrc file and use ftp to copy the files, or create a /etc/hosts.equiv and use rcp

thk you to reply quicky jgt.
I ll try.
No other way to fix the password prompt ?

I am no expert for SCO, but in most UNIXes (and i presume in SCO too) the passwd utility clears the buffer before using stdin, which is the reason why a pipeline won't work (in fact this is the desired effect - passwd is not supposed to work that way).

You can use a program to emulate an interactive session like expect to do what you want. See the expect manual for details, but it quite straightforward: you look for a certain prompt and then feed it a string, the program will think the string was entered by keyboard.

I hope this helps.

bakunin

UNIX even has the isatty() call for secure applications, to check whether stdin is a terminal or not, but I've mostly found these sort of apps ignore stdin and grab /dev/tty directly. This is handy since it allows things to successfully prompt for a password even when they're buried deep in a pipe chain.

Hello jochen,

Maybe try:

echo -e "$password\n$password" | passwd "$user"

Regards,

Arnaud