cp - kann keine reguläre Datei erstellen: Berechtigung verweigert


23

Ich möchte kopieren, /lib/udevgibt aber Fehler

cp -f /tmp/ok_pcscd_hotplug.sh /lib/udev

cp:cannot create regular file /lib/udev/ok_pcscd_hotplug : Permission denied

Ich bin root, aber ich kann nicht verstehen. Was kann ich tun ?


Wenn ich in meinem Fall etwas auf exFAT kopieren musste, schlug dies bei jeder Datei fehl, die ein "|" in seinem Dateinamen.
neverMind9

Antworten:


24

Überprüfen Sie, ob Sie wirklich Superuser sind mit:

whoami

Wenn die Ausgabe lautet root, sind Sie Superuser und können die Kopie der Datei mit folgendem Befehl erstellen:

cp -f /tmp/ok_pcscd_hotplug.sh /lib/udev/.

ansonsten musst du benutzen sudo:

sudo cp -f /tmp/ok_pcscd_hotplug.sh /lib/udev/.

Wenn Sie immer noch nicht in das Verzeichnis schreiben können, ist es möglich, dass:

  1. Das Verzeichnis hat das unveränderliche Flag aktiviert. erkundigen Sie sich bei lsattr.
  2. Das Verzeichnis ist schreibgeschützt angehängt: Geben Sie Folgendes ein:

    cat /proc/mounts(oder mountoder cat /etc/mtab)

    und überprüfen Sie die Ausgabe, wenn das Verzeichnis schreibgeschützt gemountet ist.

Wenn Sie im ersten Fall sind, ändern Sie die Verzeichnisattribute mit chattr;

  • Entfernen Sie das unveränderliche Flag in der Datei oder im Verzeichnis chattr -i <file/dir>
  • Hinzufügen eines unveränderlichen Flags in einer Datei oder einem Verzeichnis chattr +i <file/dir>

Wenn Sie in letzterem Fall sind, bearbeiten Sie die Datei /etc/fstab.


whoami - output root ich habe versucht, cp -f und sudo cp -f, aber es gibt wieder Fehler
user278122

Ich habe eine kleine Änderung an meiner Antwort vorgenommen: Ich habe den Befehl von Ihrer Frage kopiert, aber es gibt einen Fehler: Der Befehl, wie Sie ihn geschrieben haben, wird udev überschreiben. Sie müssen ihn /.am Ende des Befehls hinzufügen, um die Dateien zu kopieren das Verzeichnis
girardengo

Ich habe versucht: cp -f /tmp/ok_pcscd_hotplug.sh / lib / udev /. cp -f /tmp/ok_pcscd_hotplug.sh / lib / udev / cp /tmp/ok_pcscd_hotplug.sh / lib / udev Ich verstehe nicht, ich bin root, aber nicht kopiert, wo ist das Problem
user278122

Ich habe meine Antwort bearbeitet, mountlsattr /lib/
poste

mount / lib / - Mount: kann nicht finden , / lib / in / etc / fstab oder / etc / mtab lsattr / lib / - Inapppropriate ioctl für Gerät während Flaggen auf lib / filename Ausgang für everyfile Lesen
user278122

3

Es ist nicht jedes Mal notwendig, dass Sie root für diesen Zweck sein müssen. Wenn Sie es also mit dem root-Benutzer machen wollen, ist das in Ordnung, aber wenn Sie es ohne root machen wollen, dann haben Sie 2 Optionen:

  1. Überprüfen Sie die Berechtigungen der Datei. Dazu müssen Sie über Leseberechtigungen verfügen
  2. Überprüfen Sie, ob die Datei oder der Link mit demselben Namen im Zielverzeichnis nicht vorhanden ist. Denn wenn im Zielverzeichnis ein Link mit demselben Namen vorhanden ist, können Sie dies nicht tun und werden auch nicht gewarnt, dass ein Link mit demselben Namen vorhanden ist

1

Versuchen Sie es cp /tmp/ok_pcscd_hotplug.sh /lib/udev/im Root-Benutzer.


Nicht ändern, gibt erneut Fehler - root @ atrust-00351A: / lib # ls-l drwxrwxrwx 4 root root 324 22.05.2009 11:40 udev
user278122

Bitte posten Sie die Ausgabe whoamiundls -al /tmp/ok_pcscd_hotplug.sh
Sambit

whoami - Ausgabe root ls -al /tmp/ok_pcscd_hotplug.sh - Ausgabe -rwxr-xr-x 1 root root 229
user278122

Stellen Sie dann sicher, dass ok_pcscd_hotplug.shdas nicht beschädigt ist und /lib/udev/in Ihrem System vorhanden ist.
Samstag,

entweder ok_pcscd_hot_plug.sh oder / lib / udev verfügbar auf system
user278122

1

Sie sollten zuerst ein Verzeichnis erstellen, wenn es /lib/udevdieses nicht gibt

mkdir -p /lib/udev

0

Führen Sie zuerst "ls -l" aus und überprüfen Sie die Berechtigungen für dieses Verzeichnis. Wenn Sie so etwas wie -rw-r - r-- sehen, bedeutet dies, dass der Besitzer lesen und schreiben kann, die Benutzergruppe nur lesen kann und World nur lesen kann. Geben Sie in diesem Fall den folgenden Befehl ein: "chmod 766". Auf diese Weise können Sie Lese- und Schreibvorgänge für diese Datei ausführen. Versuchen Sie nun, diese Datei auf die gleiche Weise zu kopieren. Es sollte funktionieren


* chmod 766 <file / dir>
passerBy

1
Sie können die Antwort weiterhin bearbeiten und hinzufügen. Und ich glaube nicht daran, Benutzern alle Berechtigungen zu gewähren. Wenn stattdessen Ordner / Datei erstellt werden sollen, melden Sie sich als der Benutzer an, der über Berechtigungen verfügt. Vielen Dank. :-)
Kulfy
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.