forked from TrueCloudLab/restic
Merge pull request #4011 from greatroar/backup-stdin-password
cmd: Don't read password from stdin for backup --stdin
This commit is contained in:
commit
6fa45d0d39
2 changed files with 26 additions and 0 deletions
22
changelog/unreleased/issue-2591
Normal file
22
changelog/unreleased/issue-2591
Normal file
|
@ -0,0 +1,22 @@
|
|||
Bugfix: Don't read password from stdin for backup --stdin
|
||||
|
||||
Restic backup previously tried to read first the password, then the data
|
||||
to be backed up from standard input. This meant it would often confuse part
|
||||
of the data for the password.
|
||||
|
||||
From now on, restic backup --stdin will exit with the message
|
||||
|
||||
Fatal: cannot read both password and data from stdin
|
||||
|
||||
unless the password is passed in some other way (--restic-password-file,
|
||||
RESTIC_PASSWORD, etc.). To enter the password interactively, a password
|
||||
command has to be used. For example, on Linux,
|
||||
|
||||
mysqldump somedatabase |
|
||||
restic backup --stdin \
|
||||
--password-command='sh -c "systemd-ask-password < /dev/tty"'
|
||||
|
||||
securely reads the password from the terminal.
|
||||
|
||||
https://github.com/restic/restic/issues/2591
|
||||
https://github.com/restic/restic/pull/4011
|
|
@ -262,6 +262,10 @@ func readFilenamesRaw(r io.Reader) (names []string, err error) {
|
|||
// Check returns an error when an invalid combination of options was set.
|
||||
func (opts BackupOptions) Check(gopts GlobalOptions, args []string) error {
|
||||
if gopts.password == "" {
|
||||
if opts.Stdin {
|
||||
return errors.Fatal("cannot read both password and data from stdin")
|
||||
}
|
||||
|
||||
filesFrom := append(append(opts.FilesFrom, opts.FilesFromVerbatim...), opts.FilesFromRaw...)
|
||||
for _, filename := range filesFrom {
|
||||
if filename == "-" {
|
||||
|
|
Loading…
Reference in a new issue