permisiunea `cp` refuzată când copiez un fișier deținut de` root`

Am un folder udp_folder2

d------r-T 41 root root 4096 Apr 26 21:17 udp_folder2 

când „sunt cu un alt utilizator decât root, pot” t cp -r îl într-un folder nou scrie: Permisiunea a fost refuzată

de ce? și cum îl pot copia cu un alt utilizator decât root

Răspuns

Ei bine,

Asta ar fi pentru că modul în care sunt setate permisiunile dvs. curente, nimeni nu poate muta acel fișier. (În afară de root, deoarece root nu respectă aceleași reguli.)

Trebuie fie să schimbați proprietarul fișierului (chown), fie să adăugați celălalt utilizator la grupul „root” și chmod-l, astfel încât grupul să poată executa în director, SAU permite tuturor celorlalți să execute fișierul.

Deci, o soluție rapidă ar fi:

chmod -R o+rwx udp_folder2 

Asta va oferi tuturor posibilitatea de a citi, scrie și executa pe acel director.

De asemenea … dacă încercați să copiați „udp_folder2” în același director pe care îl află acum , veți avea nevoie de permisiunea „w” și în acel director. De exemplu:

/ foo / udp_folder2 – veți avea nevoie de „w” pe / foo pentru a copia acel director în / foo

Aș sugera să învățați permisiunile de fișiere Linux: Tutorial Linux Permission File

Comentarii

  • Cred că copia este doar r permisiune, evident că există permisiunea r pentru alt utilizator, vedeți, acolo eu sa r
  • Adică în d------r-T, r este pentru alt utilizator
  • De asemenea, aveți nevoie de permisiunea de a executa pentru a copia un director. Nu ' nu știu ce este T în mod obișnuit.
  • Dvs. ' am nevoie de ' w ' din directorul pe care ' încercați să îl copiați să … de exemplu, dacă ' copiați / home / foo în / etc / foo, ' veți avea nevoie de ' w ' permisiune în / etc /
  • @Swiss – ' T ' este un bit lipicios, care este o ' special ' permisiune. Aflați totul despre biți lipicioși aici: en.wikipedia.org/wiki/Sticky_bit

Răspuns

Directorul nu are permisiunea x, deci alții (adică, în acest caz, orice utilizator) pot folosi directorul pentru a accesa fișierele interior. T înseamnă că este lipicios (numai proprietarul unui fișier îl poate șterge). Atât cu permisiunea x, cât și cu bitul lipicios, veți vedea o minusculă t; majuscula T spune „fără permisiune de acces, ci bit lipicios, care este o combinație ciudată”.

Citiți permisiunile de fișiere / director Unix. Nu este prea greu și vei avea nevoie de el.

Răspunde

Tu nu ” Nu vreau să oferiți tuturor rwx din director, deoarece ați crea un risc de securitate. Și nu ați dori să -R chmod deoarece asta ar scrie modificări recursiv.

Doar chmod 755 "filename" și „ești bine.

Aici” se descompune numerele:

  • Citire = 4
  • Scriere = 2
  • Executare = 1

Apoi aveți 3 grupuri:

  • Proprietar.
  • Cei care aparțin grupului.
  • Toți ceilalți.

Deci, dacă doresc să le oferim proprietarului rwx, celor care aparțin grupului rw și tuturor celorlalți rw pur și simplu adăugați permisiunile: rwx = 7, deoarece r + w + x este 4 + 2 + 1 și rw = 6 r + w = 4 + 2.

Comentarii

  • Prin urmare, termenul meu ' Deci, o soluție rapidă ar fi ' și îi trimit un link pentru a afla mai multe despre permisiuni. El nu ' a menționat o preocupare pentru securitate sau ceva de genul acesta. Tocmai a declarat că vrea să copieze directorul.
  • De asemenea, vom ' vom avea nevoie de ' w ' permisiunea pentru directorul în care ' încearcă să-l copieze.
  • Donați ' nu fii un urăsc Tillman.

Răspuns

Pentru a copia folderul în care proprietarul nu face acest lucru” Nu aveți permisiunea, trebuie să modificați aceste permisiuni.

Dacă folderul este restricționat chiar și pentru proprietar, există un motiv pentru acesta și acordarea permisiunilor pentru toți ceilalți (o) nu este o soluție bună ( așa cum se arată în primul răspuns).

Pentru ca proprietarul să acceseze folderul, acesta trebuie să fi citit (r) și să execute / să caute biți (X) set. Dacă aveți dosare în dosare, fiecare ar trebui să respecte aceleași reguli. Pentru fișierele citite numai bit (r) este suficient.

Deci, practic, pentru a da permisiunile de citire folderului recursiv, trebuie să rulați:

chmod -vR u+rX folder/ 

Dacă rulați deasupra comenzii ca utilizator, prefixați cu sudo (dacă aveți privilegii de superutilizator), în caz contrar, rulați ca root.

Dacă unele fișiere din folder nu sunt deținute de root, schimbați-le recursiv prin:

sudo chown -vR root folder/ 

Apoi copiați-l ca de obicei sau utilizați rsync după cum urmează:

rsync -vuar src/ dst/ 

Pentru mai multe explicații despre comenzile de mai sus, verificați: man chmod și man chown.

Lasă un răspuns

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