Обсуждение: How do create a user with a bashscript
Hi. I want to create a user with the createuser command and supply the password at the command line in a script, like this #!/bin/bash createuser myuser but I want to supply a password on the command line, is that possible? The docs tells me no, but does anyone know of a workaround?
A B <gentosaker@gmail.com> schrieb:
> Hi.
> I want to create a user with the createuser command and supply the
> password at the command line in a script, like this
>
> #!/bin/bash
> createuser myuser
>
> but I want to supply a password on the command line, is that possible?
> The docs tells me no, but does anyone know of a workaround?
Maybe with expect(1):
NAME
expect - programmed dialogue with interactive programs, Version 5
SYNOPSIS
expect [ -dDinN ] [ -c cmds ] [ [ -[f|b] ] cmdfile ] [ args ]
INTRODUCTION
Expect is a program that "talks" to other interactive programs according to a script. Following the script,
Expectknows what can be expected
from a program and what the correct response should be. An interpreted language provides branching and
high-levelcontrol structures to direct
the dialogue. In addition, the user can take control and interact directly when desired, afterward returning
controlto the script.
Andreas
--
Really, I'm not out to destroy Microsoft. That will just be a completely
unintentional side effect. (Linus Torvalds)
"If I was god, I would recompile penguin with --enable-fly." (unknown)
Kaufbach, Saxony, Germany, Europe. N 51.05082°, E 13.56889°
2008/9/19 Andreas Kretschmer <akretschmer@spamfence.net>: > A B <gentosaker@gmail.com> schrieb: > >> Hi. >> I want to create a user with the createuser command and supply the >> password at the command line in a script, like this >> >> #!/bin/bash >> createuser myuser >> >> but I want to supply a password on the command line, is that possible? >> The docs tells me no, but does anyone know of a workaround? > > Maybe with expect(1): > > NAME > expect - programmed dialogue with interactive programs, Version 5 > > SYNOPSIS > expect [ -dDinN ] [ -c cmds ] [ [ -[f|b] ] cmdfile ] [ args ] > > INTRODUCTION > Expect is a program that "talks" to other interactive programs according to a script. Following the script, Expectknows what can be expected > from a program and what the correct response should be. An interpreted language provides branching and high-levelcontrol structures to direct > the dialogue. In addition, the user can take control and interact directly when desired, afterward returning controlto the script. > > > > Andreas I managed to do it by calling psql and setting the password in the command (with -c option). Took some time to figure out that I had to use the template1 database when connecting.
On Fri, 2008-09-19 at 09:11 +0200, A B wrote:
> #!/bin/bash
> createuser myuser
>
> but I want to supply a password on the command line, is that possible?
> The docs tells me no, but does anyone know of a workaround?
psql mydb -c "ALTER ROLE myrole WITH ENCRYPTED PASSWORD mypass"
could work, I think.
--
Devrim GÜNDÜZ, RHCE
devrim~gunduz.org, devrim~PostgreSQL.org, devrim.gunduz~linux.org.tr
http://www.gunduz.org