Mam plik na serwerze A (który jest za NATem, który nie jest bezpośrednio adresowalny). Plik musi zostać skopiowany na serwer B w katalogu ograniczonym do roota. Mam konto na serwerze B z uprawnieniami sudo. Jaka jest składnia polecenia scp?
command-line
security
sudo
scp
Neil
źródło
źródło
Odpowiedzi:
Najpierw musisz skopiować plik do miejsca, w którym masz dostęp do zapisu bez sudo,
Następnie przenieś plik za pomocą sudo
Jeśli nie masz miejsca do zapisu, utwórz tymczasowy katalog z uprawnieniami do zapisu dla swojego użytkownika.
źródło
chmod 777
zazwyczaj jest to zły sposób. Zastanów się, co mogłoby się stać, gdyby ktoś inny był zalogowany i wiedział, że zamierzasz uruchomić ten kod.ssh sudo
nie działa dla mnie - narzeka „brak tty i nie określono programu askpass”?Z SCP musisz zrobić w dwóch krokach, jednak możesz to zrobić w jednym z rsync w następujący sposób:
Uwaga: to wymaga
NOPASSWD
konfiguracja sudo. Jeśli musisz wprowadzić hasło do sudo, potrzebny jest dwuetapowy sposób.Aby skopiować katalog, musisz dodać
-r
parametr. I-v
dla pełnego wydruku.Aby użyć powyższej metody z poświadczeniami, musisz dodać je do swojego
~/.ssh/config
plik, np.źródło
sudo: sorry, you must have a tty to run sudo
naprawione przez-e "ssh -tt"
.-e "ssh -tt"
, Dostajęprotocol version mismatch -- is your shell clean?
. Jakieś wskazówki, jak to naprawić?Możesz użyć ssh i tar do obejścia tego problemu:
Najpierw aktualizuje datownik sudo (w razie potrzeby pytając o hasło, które wymaga tty (
ssh -t
)), a następnie używa sudo do zdalnego tworzenia tarballa i lokalnego wyodrębniania.„tar” w RedHat 5 wymaga opcji „--preserve” po komendzie „xpsf -”.
źródło
tar: Invalid replacement string
, usuwanie-s
wydaje się, że to naprawia (nie wiesz, czego potrzebujeszs
w każdym razie). Wielkie dzięki; to jest niesamowite.tty_tickets
być wyłączonym, prawda?Możesz użyć sftp za pomocą polecenia sudo, na przykład:
źródło
Jeśli za każdym razem musisz wpisać hasło do sudo, możesz zapisać je w pliku:
a następnie wyślij go wraz z plikiem źródłowym.
Możesz użyć
tee
zamiastsponge
jeśli nie masz dodatkowych przedmiotów.źródło
Skopiuje określony plik ze źródła do / tmp / na bieżącym serwerze
źródło