Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Linux sudo raises UnexpectedExit instead of AuthFailure on incorrect password

Aperta
#918 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
45/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Ferma
Stack tecnologico
python

Direzione di ricerca

Start with the Linux sudo path in invoke/context.py, especially _sudo, then trace the runner behavior named in invoke/runners.py through _finish. Compare the incorrect-password result with the macOS behavior; done means invoke.sudo raises AuthFailure rather than UnexpectedExit for the reported Linux case.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

On Linux, invoke.sudo raises UnexpectedExit instead of AuthFailure on incorrect password.

>>> import invoke
>>> invoke.sudo("ls", password="a")
[sudo] password: Sorry, try again.
[sudo] password: Sorry, try again.
[sudo] password: sudo: 3 incorrect password attempts
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/nelson/foo/.venv/lib/python3.7/site-packages/invoke/__init__.py", line 68, in sudo
    return Context().sudo(command, **kwargs)
  File "/home/nelson/foo/.venv/lib/python3.7/site-packages/invoke/context.py", line 170, in sudo
    return self._sudo(runner, command, **kwargs)
  File "/home/nelson/foo/.venv/lib/python3.7/site-packages/invoke/context.py", line 215, in _sudo
    return runner.run(cmd_str, watchers=watchers, **kwargs)
  File "/home/nelson/foo/.venv/lib/python3.7/site-packages/invoke/runners.py", line 376, in run
    return self._run_body(command, **kwargs)
  File "/home/nelson/foo/.venv/lib/python3.7/site-packages/invoke/runners.py", line 432, in _run_body
    return self.make_promise() if self._asynchronous else self._finish()
  File "/home/nelson/foo/.venv/lib/python3.7/site-packages/invoke/runners.py", line 499, in _finish
    raise UnexpectedExit(result)
invoke.exceptions.UnexpectedExit: Encountered a bad command exit code!

Command: "sudo -S -p '[sudo] password: ' ls"

Exit code: 1

Stdout: already printed

Stderr: already printed

Version info

invoke: 2.0.0 (also tested on 1.7.1)
OS: Ubuntu 20.04.5 LTS
Python: 3.7.13 (also tested on 3.8.13 and 3.10.5)

I tested this on macOS and it raises AuthFailure as expected.

Lingua principale
Python
Stelle
4.8k
Fork
412
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di pyinvoke/invoke

Tutte le issue di pyinvoke/invoke

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.