Przesyłaj pliki przy użyciu scp: Odmowa uprawnień

Próbuję przesłać pliki z komputera zdalnego za pomocą ssh na mój komputer:

scp My_file.txt user_id@server:/Home

To powinno umieścić My_file.txt w folderze domowym na moim komputerze, prawda? Dostaję

scp / Home: odmowa pozwolenia

Również gdy próbuję: ...@server:/Desktop, aby skopiować pliki z komputera zdalnego na mój pulpit.

Co robię źle?

Komentarze

  • Jeśli chcesz skopiować plik do folderu domowego ' user_id ' użyj scp My_file.txt user_id@server: Kopiuje do folderu domowego użytkownika.

Odpowiedź

Twoje polecenia próbują umieścić nowy dokument w katalogu głównym (/) swojego komputera. To, co chcesz zrobić, to przenieść je do katalogu domowego (ponieważ nie masz uprawnień do zapisu w ). Jeśli ścieżka do Twojego domu to /home/erez, spróbuj wykonać następujące czynności:

scp My_file.txt user_id@server:/home/erez/ 

Możesz zastąpić ścieżkę do swojego katalog domowy ze skrótem ~/, więc następujący efekt będzie miał ten sam efekt:

scp My_file.txt user_id@server:~/ 

Możesz nawet opuścić całkowicie wyjść ze ścieżki po odległej stronie; to oznacza twój katalog domowy.

scp My_file.txt user_id@server: 

Oznacza to, że aby skopiować plik na pulpit, możesz go przenieść do /home/erez/Desktop/:

scp My_file.txt user_id@server:/home/erez/Desktop/ 

lub używając skrótu:

scp My_file.txt user_id@server:~/Desktop/ 

lub używając względna ścieżka po stronie zdalnej, która jest interpretowana względem twojego katalogu domowego:

scp My_file.txt user_id@server:Desktop/ 

Edytuj:

As @ ckhan już wspomniano, musisz również zamienić argumenty, musi to być

scp FROM TO 

Więc jeśli chcesz skopiować plik My_file.txt z serwera user_id@server na pulpit należy wykonać następujące czynności:

scp user_id@server:/path/to/My_file.txt ~/Desktop/ 

Jeśli plik My_file.txt znajduje się w Twoim katalogu domowym na serwerze, możesz ponownie użyć skrótu:

scp user_id@server:~/My_file.txt ~/Desktop/ 

Komentarze

  • – ' próbowałem: ” ~ / dla ' Strona główna ' teraz, a także ” ~ /Pulpit/. Oba spowodowały: My_file.txt 100% 0 0,0 KB / s 00:00 i nie widzę plików w moich folderach. Co ja nadal robię źle? Wielkie dzięki!
  • W drugim przykładzie polecenia ~ powinno być chronione przed oceną, aby mogło zostać ocenione na zdalnym hoście: .
  • Aby podziękować, zarejestrowałem się na stronie. Dzięki, uratowałeś mój dzień 🙂

Odpowiedź

Przyszedłem tutaj po „Przesyłanie plików przy użyciu scp: odmowa uprawnień „ponieważ miałem ten sam błąd.

W moim przypadku plik pobrany za pomocą scp nadpisałby plik należący do roota, a ja nie byłem rootem. Krótko mówiąc, sprawdź, kto jest właścicielem pliku nadpisane.

Komentarze

  • W tym przypadku ' s, ponieważ ' próbuje pisać do /Home i nie jest rootem, nie ' nie ma uprawnień do zapisu poza ~/
  • Pomóż mi.

Odpowiedz

Tym, co naprawiło „odmowę uprawnień” dla mnie, była zmiana prawa własności folderu na serwerze zdalnym na root: (Może się to zdarzyć, gdy wysyłasz plik do użytkownika innego niż root, a właścicielem katalogu jest root! ) Na zdalnym komputerze (kopiowanie miejsca docelowego):

sudo chown (your username) (remote folder) 

Również dla pewności włącz wszystkie uprawnienia do zdalnego folderu: (Nie zawsze jest to konieczne):

sudo chmod 777 (remote folder) 

Odpowiedź

wygląda to na problem z pozwoleniem

Plik może nie mieć uprawnień do odczytu, ponieważ jest dostarczany do serwera docelowego jako konto źródłowe.

musisz się upewnić, że plik u źródła ma wymagane uprawnienia, zwłaszcza uprawnienia do odczytu

-rw-r – r–

chmod 744

następnie przesuń plik do miejsca docelowego. To zostanie rozwiązane.

Komentarze

  • -rw-r--r-- to 644, a nie 744. Ustawianie uprawnień do plików wykonywalnych na plik, który w rzeczywistości nie jest wykonywalny, może powodować problemy.

Odpowiedź

Masz argumenty do scp odwrócone.Najpierw źródło, potem miejsce docelowe, np. cp. man scp, aby uzyskać więcej informacji.

Odpowiedź

Jak zauważył Jinzai, zdalny folder może być własnością roota. W moim przypadku ktoś (lub coś) zmienił właściciela folderu domowego użytkownika zapuszczać korzenie. Tak więc, gdy próbowałem wysłać plik na serwer zdalny, wystąpił błąd odmowy uprawnień.

Możesz sprawdzić właściciela folderu za pomocą polecenia ls -l :

drwxr-xr-x 5 root root 4096 Oct 21 08:16 user2

W powyższym przykładzie, właścicielem folderu user2 jest root. Możesz zmienić właściciela w ten sposób:

chown user2:user2 user2

Istnieje również szybszy sposób sprawdzenia, czy serwer blokuje plik, scp czy nie. Spróbuj utworzyć plik w folderze docelowym, na przykład z touch test_file. Jeśli nie możesz utworzyć pliku w folderze, nie będziesz mógł wysłać pliku tutaj zdalnie przez tego samego użytkownika.

Odpowiedź

Odmowa pozwolenia oznacza, że nie jesteś rootem serwera. Po prostu masz tam konto. Więc w takim przypadku musisz to zrobić:

sudo scp -r /path2yourFolder/ username@server_Ip:/home/username 

Spowoduje to skopiowanie do twojego katalogu domowego na serwerze.

To również zadziała :

scp -r /path2yourFolder/ username@server_Ip:~/ 

Odpowiedź

Amazon Linux AMI

Upewnij się, że musisz ustawić bezwzględną ścieżkę serwera, od home w obecnym przypadku:

scp file.txt SSH-ALIAS:/home/YOUR_USER/ 

Odpowiedź

Zainstaluj narzędzie systemu Windows„ mRemoteG ”z www.mremoteng.org/

Utwórz połączenie SSH w wybranym polu.

Kliknij menu „Transfer File”.

Pozwoli to na łatwe przesyłanie plików z Windows do Linuksa.

Dzięki.

Odpowiedź

Te same uprawnienia obowiązują po obu stronach scp. Ten błąd pojawi się, jeśli użytkownik nie ma uprawnień do zapisu w miejscu docelowym. Objawy wydają się implikować źródło, jednak w moim przypadku miejsce docelowe zostało utworzone przez użytkownika root i nie ma uprawnień do zapisu dla konta docelowego użytkownika.

Odpowiedź

W moim przypadku próbowałem również przyznać wszystkie uprawnienia za pomocą opcji -R do folderu, ale nadal wyświetlał się błąd dotyczący uprawnień.

Musiałem usunąć „/” przed ścieżką docelowego serwera i folderu. Powodem jest to, że Pobieranie jest pierwszym folderem, który mogę wyświetlić po wysłaniu przez ssh do serwera, na przykład: ssh [email protected]

To działa:

sudo scp -rp /Users/macintosh.vn/Downloads/bbhs_20190301.zip [email protected]: Pobieranie

To nie działało:

sudo scp -rp /Users/macintosh.vn/Downloads /bbhs_20190301.zip [email protected]: / Downloads

Odpowiedź

Łatwa naprawa. Upewnij się, że jesteś rootem. SCP do pilota i zapyta Cię o hasło roota dla tego komputera. Właśnie miałem ten problem, który był rozwiązaniem. Zrootuj je rootem.

Komentarze

  • Ponieważ logowanie roota jest zwykle wyłączone w sshd_config , powinieneś pokazać OP, jak aby to zmienić (chociaż ' nie jest zalecane).
  • Dlaczego nalegasz na używanie roota do kopiowania (dowolnego) pliku? Zwróć także uwagę na akceptowaną odpowiedź sprzed ~ 7 lat …

Odpowiedz

przed użyciem polecenia scp, upewnij się, że dajesz uprawnienia do odczytu, zapisu i wykonywania wszystkim osobom spoza. „chmod 777 nazwa_pliku”

Komentarze

  • można skopiować plik 777 inny niż

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *