Autorizzazione `cp` negata quando si copia un file di proprietà di` root`

Ho una cartella udp_folder2

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

quando “sono con un utente diverso da root, posso” t cp -r in una nuova cartella dice: Autorizzazione negata

perché? e come posso copiarlo con un utente diverso da root

Risposta

Bene,

Questo sarebbe perché il modo in cui sono impostati i permessi correnti, nessuno può spostare quel file. (Oltre a root, perché root non segue le stesse regole.)

Dovresti cambiare il proprietario del file (chown), OPPURE aggiungere laltro utente al gruppo “root” e chmod in modo che il gruppo possa eseguire sulla directory, OPPURE consentire a tutti gli altri di eseguire il file.

Quindi, una soluzione rapida sarebbe:

chmod -R o+rwx udp_folder2 

Ciò darà a tutti la possibilità di leggere, scrivere ed eseguire su quella directory.

Inoltre … se “stai tentando di copiare” udp_folder2 “nella stessa directory in cui si trova ora , avrai bisogno anche dellautorizzazione “w” per quella directory. Ad esempio:

/ foo / udp_folder2 – avrai bisogno di “w” su / foo per copiare quella directory in / foo

Suggerirei di apprendere i permessi dei file Linux: Tutorial sui permessi dei file Linux

Commenti

  • Penso che la copia sia solo r autorizzazione, ovviamente cè r autorizzazione per un altro utente, vedi, lì io sa r
  • Voglio dire in d------r-T, r è per un altro utente
  • È inoltre necessaria lautorizzazione di esecuzione per copiare una directory. ' non sono sicuro di cosa T sia improvvisato.
  • Tu ' avrai bisogno del ' w ' nella directory che ' stai tentando di copiare a … ad esempio, se ' stai copiando / home / foo in / etc / foo, ' avrai bisogno del ' w ' autorizzazione in / etc /
  • @Swiss – The ' T ' è un bit appiccicoso, ovvero unautorizzazione ' speciale '. Scopri tutto sugli sticky bit qui: en.wikipedia.org/wiki/Sticky_bit

Risposta

La directory non ha lautorizzazione x, quindi altri (cioè in questo caso qualsiasi utente) possono utilizzare la directory per raggiungere i file dentro. T significa che è appiccicoso (solo il proprietario di un file può eliminarlo). Con entrambi i permessi x e sticky bit, vedresti un t minuscolo; il T maiuscolo dice “nessun permesso di accesso ma sticky bit, che è una strana combinazione”.

Leggi i permessi di file / directory Unix. Non è troppo difficile e ne avrai bisogno.

Rispondi

Non lo fai ” Voglio dare a tutti rwx nella directory perché “creeresti un rischio per la sicurezza. E non vorrai” -R chmod perché ciò scriverebbe le modifiche in modo ricorsivo.

Basta chmod 755 "filename" e “sei bravo.

Ecco” una suddivisione dei numeri:

  • Read = 4
  • Write = 2
  • Execute = 1

Quindi hai 3 gruppi:

  • Proprietario.
  • Coloro che appartengono al gruppo.
  • Tutti gli altri.

Quindi, se tu voglio dare al proprietario rwx, coloro che appartengono al gruppo rw e tutti gli altri rw devi solo aggiungere le autorizzazioni: rwx = 7, perché r + w + x è 4 + 2 + 1 e rw = 6 perché r + w = 4 + 2.

Commenti

  • Da qui il mio termine ' Quindi, una soluzione rapida sarebbe ' e gli mando un link per saperne di più sulle autorizzazioni. Non ha ' menzionato preoccupazioni per la sicurezza o cose del genere. Ha appena affermato di voler copiare la directory.
  • Inoltre, ' avrà bisogno del ' w ' autorizzazione per la directory in cui ' sta tentando di copiarla.
  • Don ' t essere un hater Tillman.

Rispondi

Per copiare la cartella dove il proprietario non lo fa” Non hai il permesso, devi cambiare questi permessi.

Se la cartella è limitata anche al proprietario, cè qualche motivo per questo e dare i permessi a tutti gli altri (o) “non è una buona soluzione ( come mostrato nella prima risposta).

Affinché il proprietario acceda alla cartella, deve aver letto (r) ed eseguire / ricerca bit (X) impostato. Se ci sono cartelle allinterno delle cartelle, ognuna dovrebbe seguire le stesse regole. Per i file è sufficiente solo il bit di lettura (r).

Quindi, in pratica, per dare i permessi di lettura alla cartella in modo ricorsivo, devi eseguire:

chmod -vR u+rX folder/ 

Se “stai eseguendo il comando precedente come utente, aggiungi il prefisso sudo (se” disponi dei privilegi di superutente), altrimenti viene eseguito come root.

Se alcuni file allinterno della cartella non sono di proprietà di root, modificarli ricorsivamente in:

sudo chown -vR root folder/ 

Quindi copialo come al solito o usa rsync come segue:

rsync -vuar src/ dst/ 

Per ulteriori spiegazioni sui comandi precedenti, controlla: man chmod e man chown.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *