2012-11-08 5 views
6

z tkaniny, zgodnie z this documentation, można uruchomić polecenie arbitralną powłoki bez konieczności posiadania fabfile takiego:Jak uruchomić dowolne polecenie sudo Fabric bez wpisywania hasła?

fab -H host1,host2 -- echo 'hello, world!' 

Można również uruchomić sudo poleceń w taki sam sposób, ale zostanie wyświetlony monit o hasło sudo dla każdego hosta na liście.

Czy istnieje sposób na uniknięcie konieczności wpisywania hasła sudo dla każdego hosta, czy musi działać funkcja Fabric sudo()?

+0

Wydaje się, że oryginalny plakat pyta, jak mogę wykonać następujące czynności bez pytania o hasło sudo dla każdego hosta: 'fab -H host0, host1, host2 - sudo/root/bin/my_script_that_must_be_run_as_root.sh'. Wiem, jak napisać plik fabfile, aby to zrobić, ale chciałbym wiedzieć, jak to zrobić jako polecenie add-hoc. Opcja -I nie działa w tym przypadku. Testuję z Fabric 1.6.0. – Carl

Odpowiedz

2

po prostu dodaj następujący wiersz do etc/sudoers gdzie nazwa_użytkownika powinna być zamierzonym użytkownikiem, który uruchomi sudo. Powinieneś zrozumieć konsekwencje bezpieczeństwa wynikające z następujących czynności. Możesz również ograniczyć poniższe opcje, aby ograniczyć polecenia, które użytkownik może wykonać bez hasła.

myusername ALL=(ALL) NOPASSWD: ALL 
0

Możesz także rozważyć uwierzytelnianie pam dla pliku klucza ssh. Dobrym podkładem będzie ten blog - entry. W ten sposób nie musiałbyś kompromitować bezpieczeństwa. Możesz nawet skopiować plik klucza przed rozpoczęciem operacji sudo na swoim koncie zdalnym, zakładając, że posiadasz kwalifikowane konto. :-)