Transfer fișiere folosind scp: permisiune refuzată

Încerc să transfer fișiere de pe computerul de la distanță folosind ssh pe computerul meu:

scp My_file.txt user_id@server:/Home

Aceasta ar trebui să plaseze My_file.txt în folderul de acasă de pe computerul meu, nu? Primesc

scp / Home: permisiunea refuzată

De asemenea, când încerc: ...@server:/Desktop, pentru a copia fișierele de pe computerul de la distanță pe desktopul meu.

Ce fac greșit?

Comentarii

  • Dacă doriți să copiați fișierul în dosarul principal al ‘ user_id ‘ utilizați scp My_file.txt user_id@server: Copiază în dosarul de start al utilizatorilor.

Răspuns

Comenzile dvs. încearcă să pună noul document la rădăcină (/) al mașinii dvs. Ceea ce doriți să faceți este să le transferați în directorul de acasă (deoarece nu aveți permisiuni pentru a scrie în /). Dacă calea spre casa dvs. este ceva de genul /home/erez încercați următoarele:

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

Puteți înlocui calea către directorul home cu comanda rapidă ~/, deci următoarele vor avea același efect:

scp My_file.txt user_id@server:~/ 

Puteți chiar să părăsiți ieșiți complet pe calea de pe partea îndepărtată; aceasta înseamnă directorul dvs. de pornire.

scp My_file.txt user_id@server: 

Adică, pentru a copia fișierul pe desktop, vă recomandăm să îl transferați la /home/erez/Desktop/:

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

sau folosind comanda rapidă:

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

sau utilizând o cale relativă pe partea de la distanță, care este interpretată în raport cu directorul dvs. de acasă:

scp My_file.txt user_id@server:Desktop/ 

Editați:

Ca @ ckhan deja menționat, trebuie să schimbați și argumentele, trebuie să fie

scp FROM TO 

Deci, dacă doriți să copiați fișierul My_file.txt de pe server user_id@server pe desktopul dvs. ar trebui să încercați următoarele:

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

Dacă fișierul My_file.txt se află în directorul dvs. principal de pe server, puteți utiliza din nou comanda rapidă:

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

Comentarii

  • – Am ‘ am încercat: ” ~ / pentru ‘ Acasă ‘ acum și, de asemenea, ” ~ / Desktop /. Ambele au avut ca rezultat: Fișierul_meu.txt 100% 0 0,0 KB / s 00:00 și nu pot vedea fișierele din folderele mele. Ce fac în continuare greșit? Mulțumesc mult!
  • La al doilea exemplu de comandă, ~ ar trebui protejat de evaluare pentru a fi evaluat pe gazda de la distanță: \~ de exemplu.
  • Pentru a vă mulțumi, m-am înregistrat pe site. Mulțumesc că mi-ai salvat ziua 🙂

Răspuns

Am venit aici pentru „Transfer fișiere folosind scp: permisiunea refuzată „pentru că am avut aceeași eroare.

În cazul meu, fișierul descărcat cu scp ar fi suprascris un fișier deținut de root și nu eram root. Pe scurt, verificați proprietatea fișierului fiind suprascris.

Comentarii

  • În acest caz, ‘ este pentru că el ‘ încearcă să scrie pe /Home și nefiind rădăcină, el nu are ‘ acces la scriere în afara ~/
  • Mă ajutați.

Răspundeți

Ceea ce a rezolvat „permisiunea refuzată” pentru mine a fost, pe serverul de la distanță, schimbarea proprietății folderului în root: (Acest lucru se poate întâmpla atunci când trimiteți un fișier către un utilizator non-root, iar directorul este deținut de root! ) Pe aparatul la distanță (destinație copiere):

sudo chown (your username) (remote folder) 

De asemenea, pentru a fi sigur, activați toate permisiunile din folderul la distanță: (Nu întotdeauna este necesar):

sudo chmod 777 (remote folder) 

Răspuns

acest lucru pare a fi o problemă cu permisiunea

Este posibil ca fișierul să nu aibă permisiuni de citire deoarece este livrat la serverul de destinație ca cont sursă.

trebuie să vă asigurați că fișierul de la sursă are permisiuni necesare, în special permisiunea de citire

-rw-r – r–

chmod 744

apoi scp fișierul la destinație. Acest lucru va fi rezolvat

Comentarii

  • -rw-r--r-- este 644, nu 744. Setarea permisiunii executabile pe un fișierul care nu este de fapt executabil poate provoca probleme.

Răspuns

Aveți argumentele pentru scp inversat.Mai întâi este sursa, apoi destinația, ca cp. man scp pentru mai multe detalii.

Răspuns

După cum a subliniat Jinzai, folderul la distanță poate fi deținut de rădăcină. În cazul meu, cineva (sau ceva) a schimbat proprietarul folderului de acasă al utilizatorului a rădăcina. Deci, când am încercat să trimit un fișier către un server la distanță, a apărut o eroare de refuzare a permisiunii.

Puteți verifica proprietarul folderului cu comanda ls -l :

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

În exemplul de mai sus, folderul user2 este deținut de root. Puteți schimba proprietarul astfel:

chown user2:user2 user2

Există, de asemenea, o modalitate mai rapidă de a verifica dacă serverul blochează un fișier prin scp sau nu. Încercați să creați un fișier în folderul țintă, de exemplu cu touch test_file. Dacă nu ați putut crea un fișier în dosar, atunci nu veți putea trimite fișierul aici de la distanță de același utilizator.

Răspuns

Permisiunea refuzată înseamnă că nu sunteți rădăcina serverului. Pur și simplu deții un cont acolo. Deci, în acest caz, trebuie să faceți acest lucru:

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

Aceasta se va copia în directorul dvs. de acasă de pe server.

Acest lucru va funcționa și :

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

Răspuns

Amazon Linux AMI

Asigurați-vă că trebuie să setați calea absolută a serverului, de la acasă în cazul curent:

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

Răspunde

Instalează un instrument Windows” mRemoteG „de pe www.mremoteng.org/

Creați conexiunea SSH la caseta dorită.

Faceți clic pe meniul „Transfer File”.

Vă va permite să transferați fișierul cu ușurință de la Windows la Linux.

mulțumesc.

Răspuns

Aceleași permisiuni se aplică pe ambele părți ale SCP. Veți primi această eroare dacă utilizatorul nu are permisiunea de a scrie la destinație. Simptomele par să implice sursa, cu toate acestea, în cazul meu, destinația a fost creată de root și nu avea permisiunea de scriere pentru contul de utilizator intenționat.

Răspuns

În cazul meu, am încercat, de asemenea, să acord toate folderele cu -R în dosar, dar totuși am primit eroarea legată de permisiune.

A trebuit să elimin „/” înainte de calea serverului și folderului țintă. Motivul este pentru că Descărcări este primul folder pe care îl pot lista după ce am trimis serverul, de exemplu: ssh [email protected]

Acest lucru funcționează:

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

Acest lucru nu funcționa:

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

Răspuns

Remediere ușoară. Asigurați-vă că sunteți rădăcină. SCP la telecomandă și vă va cere parola de root a mașinilor. Tocmai am avut această problemă care a fost soluția. Le rootezi rădăcină.

Comentarii

  • Deoarece datele de conectare root sunt dezactivate în mod normal în sshd_config , ar trebui să arăți OP cum pentru a schimba acest lucru (deși ‘ nu este recomandat).
  • De ce insistați să utilizați root pentru a copia un (orice) fișier? Observați, de asemenea, răspunsul acceptat de acum aproximativ 7 ani …

Răspuns

înainte de a utiliza comanda scp, faceți sigur că dați permisiunile de citire, scriere și executare tuturor celor din afara. „chmod 777 file_name”

Comentarii

  • puteți copia fișiere care nu sunt 777

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *