`cp` toestemming geweigerd bij het kopiëren van een bestand dat eigendom is van` root`

Ik heb een map udp_folder2

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

als ik “m met een andere gebruiker dan root, kan ik” t cp -r het in een nieuwe map staat er: Toestemming geweigerd

waarom? en hoe kan ik het kopiëren met een andere gebruiker dan root

Antwoord

Nou,

Dat zou zijn omdat de manier waarop uw huidige rechten zijn ingesteld, niemand dat bestand kan verplaatsen. (Anders dan root, omdat root “niet dezelfde regels volgt.)

Je zou ofwel de eigenaar van het bestand (chown) moeten veranderen, OF de andere gebruiker moeten toevoegen aan de groep” root “en chmod het zodat de groep het bestand kan uitvoeren, OF laat alle anderen het bestand uitvoeren.

Een snelle oplossing zou dus zijn:

chmod -R o+rwx udp_folder2 

Dat geeft iedereen de mogelijkheid om in die directory te lezen, te schrijven en uit te voeren.

Ook … als je “udp_folder2” probeert te kopiëren naar dezelfde directory waarin het zich nu bevindt , heb je ook de toestemming “w” nodig voor die map. Bijvoorbeeld:

/ foo / udp_folder2 – je “hebt” w “aan / foo nodig om die map naar / foo te kopiëren

Ik zou willen voorstellen om linux-bestandsrechten te leren: Linux File Permission Tutorial

Opmerkingen

  • Ik denk dat kopiëren slechts r toestemming is, uiteraard is er r toestemming voor andere gebruikers, zie je, daar ik sa r
  • Ik bedoel in d------r-T, de r is voor andere gebruiker
  • Je hebt ook toestemming nodig om een directory te kopiëren. Ik ' weet niet zeker wat T is.
  • Jij ' Ik heb de ' w ' nodig in de directory die je ' opnieuw probeert te kopiëren naar … als je bijvoorbeeld ' / home / foo opnieuw kopieert naar / etc / foo, heb je ' de ' w ' toestemming in / etc /
  • @Swiss – De ' T ' is een plakkerig bit, dat een ' speciale ' toestemming is. Leer hier alles over plakkerige bits: en.wikipedia.org/wiki/Sticky_bit

Antwoord

De directory heeft geen x toestemming, dus anderen (dwz in dit geval elke gebruiker) kunnen de directory gebruiken om de bestanden te bereiken binnen. De T betekent dat het plakkerig is (alleen de eigenaar van een bestand kan het verwijderen). Met zowel de x toestemming als de sticky bit, zou je een kleine letter t zien; de hoofdletter T zegt “geen toegangsrechten maar een plakkerig bit, wat een vreemde combinatie is”.

Lees meer over Unix-bestands- / maprechten. Het is niet “te moeilijk, en u zult het nodig hebben.

Antwoord

U niet” Ik wil niet iedereen rwx in de directory geven omdat je “een beveiligingsrisico zou creëren. En je zou” niet “-R de chmod willen geven omdat dat de wijzigingen recursief zou schrijven.

Gewoon chmod 755 "filename" en je bent goed.

Hier is een uitsplitsing van de getallen:

  • Lezen = 4
  • Schrijven = 2
  • Uitvoeren = 1

Dan heb je 3 groepen:

  • Eigenaar.
  • Degenen die tot de groep behoren.
  • Alle anderen.

Dus, als je wil de eigenaar rwx geven, degenen die tot de groep behoren rw, en alle anderen rw je voegt gewoon de rechten toe: rwx = 7, omdat r + w + x is 4 + 2 + 1 en rw = 6 omdat r + w = 4 + 2.

Reacties

  • Vandaar mijn term ' Een snelle oplossing zou dus ' zijn en ik stuur hem een link voor meer informatie over permissies. Hij heeft geen ' een bezorgdheid over de veiligheid of iets dergelijks genoemd. Hij heeft net aangegeven dat hij de directory wil kopiëren.
  • Ook hebben we ' de ' w ' toestemming voor de directory waarin hij ' probeert te kopiëren.
  • Don ' t be a hater Tillman.

Answer

Om een map te kopiëren waar de eigenaar dat niet doet” Als je er geen toestemming voor hebt, moet je deze rechten wijzigen.

Als de map zelfs voor de eigenaar beperkt is, is daar een reden voor en is het geven van rechten voor alle anderen (o) geen goede oplossing ( zoals getoond in het eerste antwoord).

Om toegang te krijgen tot de map door de eigenaar, moet de map gelezen (r) en uitgevoerd / zoekbits (X) set. Als je mappen in de mappen hebt, moet elke map dezelfde regels volgen. Voor bestanden is alleen het lezen bit (r) voldoende.

Dus eigenlijk om de leesrechten voor de map recursief te geven, moet je uitvoeren:

chmod -vR u+rX folder/ 

Als u “bovenstaande opdracht als gebruiker uitvoert, voeg dan sudo toe (als u superuser-rechten heeft), anders draaien als root.

Als sommige bestanden in de map “geen eigendom zijn van root, verander het dan recursief door:

sudo chown -vR root folder/ 

Dan kopieer het zoals gewoonlijk of gebruik rsync als volgt:

rsync -vuar src/ dst/ 

Voor meer uitleg over bovenstaande commandos, kijk op: man chmod en man chown.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *