Piszę aplikację python, która używa narzędzia wiersza poleceń (własność, więc nie można go zmodyfikować), aby wykonać część swojej pracy. Problem polega na tym, że muszę przekazać hasło jako argument wiersza poleceń do narzędzia, które będzie łatwo widoczne dla dowolnego użytkownika wykonującego "ps ax". Jak mogę bezpiecznie wysłać hasło do narzędzia wiersza poleceń z poziomu Pythona (lub skryptu powłoki)?wysyłanie hasła do narzędzi wiersza poleceń
Odpowiedz
Jeśli hasło jest akceptowane tylko w wierszu poleceń, oznacza to, że nie masz szczęścia. Czy jesteś absolutnie pewien, że nie ma opcji, aby wysłać hasło w inny sposób? Jeśli możesz wysłać go do procesu stdin
, możesz porozmawiać z nim za pośrednictwem potoku i bezpiecznie wysłać hasło w ten sposób.
Zajmę się tym, ale nie jestem pewien, czy to możliwe. – theprole
Czy jesteś pewien, że przekazywanie haseł do programów przez rury jest bezpieczne? Zobacz moje nowe pytanie http://stackoverflow.com/questions/6321353/securely-passing-password-to-openssl-via-stdin. Może uda ci się zdobyć kilka punktów. – Enchilada
Jeśli aplikacja ma jakiś tryb interaktywny, można użyć czegoś takiego jak pyexpect.
Jeśli akceptuje tylko hasła w wierszu poleceń, aplikacja została ZAPROJEKTOWANA jako podatna na "ps ax", w jaki sposób należy przezwyciężyć oryginalny zły projekt? Jest to własnościowe, skargi powinny trafiać do winnych^H^H^H^H^H^Hauthor.
Być może uda się uzyskać większe bezpieczeństwo dzięki zaszyfrowanemu argumentowi hasła i przekazywaniu zaszyfrowanego hasła, a program może je deszyfrować. Przynajmniej nie byłoby mowy o zwykłym haśle. Użyłem tej metody podczas uruchamiania procesu przez inny proces i przekazywania jego argumentów. W twoim przypadku może to jednak nie być możliwe.
Napisz kolejny skrypt python, który zaakceptuje hasło z wiersza poleceń, używając getpass.getpass()
i zapisze go w zmiennej. Następnie wywołaj polecenie ze skryptu z tą zmienną, która ma hasło jako parametr.
Można wymusić opakowanie inline powłoki jak następuje
somecommand --password=$(echo "Enter Password: " >&2;read -s PASSWORD;echo $PASSWORD)
Wpis hasło będzie wypełniać polecenia przed wykonaniem go
hasło NIE będą wyświetlane w historii skorupy
ale będzie pojawia się na wyjściu "ps"
Co z tym w bash:
command_asking_for_password < <(command_that_prints_a_password; echo -n "\r")
Lepiej używać 'printf' - zachowanie' echo' przy podanym łańcuchu formatującym za pomocą ukośników odwrotnych - lub, jeśli o to chodzi, argument '-n' - jest [niezdefiniowane przez POSIX] (http: // pubs .opengroup.org/onlinepubs/9699919799/utilities/echo.html) i zmienia się w praktyce pomiędzy typowymi powłokami (zachowanie popiołu i myślnika różni się od bashu z domyślną konfiguracją, która różni się od bash z włączoną flagą "xpg_echo"). –
- 1. Uzyskiwanie hasła do wiersza poleceń w Pythonie
- 2. Najlepszy sposób na przetestowanie narzędzi wiersza poleceń?
- 3. Podział pliku access.log według dat za pomocą narzędzi wiersza poleceń
- 4. Jak sprawdzić wersję narzędzi programistów Androida z poziomu wiersza poleceń?
- 5. Wysyłanie wielu poleceń do zewnętrznego programu
- 6. Wysyłanie poleceń zeskanowanych przez xargs do tła
- 7. Czy istnieje sposób przekazania hasła użytkownika DB do narzędzia wiersza poleceń mysqladmin?
- 8. okna wiersza poleceń javascript
- 9. Jak używać programu java do uruchamiania poleceń wiersza poleceń?
- 10. Wejście z wiersza poleceń
- 11. Utrzymaj narzędzie wiersza poleceń.
- 12. Argumenty wiersza poleceń Java
- 13. Jak zwijanie wiersza poleceń?
- 14. Przejdź do wiersza w edytorze Atom z wiersza poleceń
- 15. Wysyłanie/pobieranie plików z wiersza poleceń Xcode do/z aplikacji urządzenia iOS Sandbox
- 16. Zredukuj, ile xcodebuild pisze do wiersza poleceń
- 17. argumenty wiersza poleceń wstrzyknąć do psake
- 18. powrócić do poprzedniej konfiguracji z wiersza poleceń?
- 19. NodeJS przekazuje argumenty wiersza poleceń do wieczności
- 20. Jak dołączyć debuggera do wiersza poleceń mstest
- 21. Logi wiersza poleceń systemu Windows do pliku
- 22. Narzędzie wiersza poleceń do znajdowania zależności Dll
- 23. przekazywanie argumentów wiersza poleceń do mrówki
- 24. Podaj .my.cnf do wiersza poleceń mysql
- 25. Karmienie wejście do aplikacji interaktywnej linii poleceń
- 26. Odszyfrowywanie ciągu GPG z wiersza poleceń
- 27. Wysyłanie nazwy użytkownika i hasła do usługi WWW
- 28. Wykonaj skrypt SQL z wiersza poleceń
- 29. Jak uruchomić narzędzia wiersza poleceń systemu Android?
- 30. Haskell: Analizowanie argumentów wiersza poleceń
To zależy od tego, w jaki sposób narzędzie, do którego chcesz zadzwonić, akceptuje hasła. Na przykład 'ssh' akceptuje go ze stdin, jeśli jest to terminal. – khachik
Czy 'sudo' byłby przydatny? –