cp - nie można utworzyć zwykłego pliku: odmowa uprawnień

23

Chcę skopiować, /lib/udevale daje błąd

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

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

Jestem rootem, ale nie rozumiem. co mogę zrobić ?

użytkownik278122
źródło
W moim przypadku, gdy musiałem skopiować coś na exFAT, nie udawało się to w każdym pliku, który miał „|” w jego nazwie pliku.
neverMind9

Odpowiedzi:

24

Sprawdź, czy naprawdę jesteś superużytkownikiem dzięki:

whoami

jeśli wynikiem jest root, to jesteś superużytkownikiem i możesz wykonać kopię pliku za pomocą:

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

w przeciwnym razie musisz użyć sudo:

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

Jeśli nadal nie możesz pisać do katalogu, możliwe jest, że:

  1. katalog ma włączoną niezmienną flagę. sprawdź z lsattr.
  2. katalog jest podłączony z uprawnieniami tylko do odczytu: wpisz terminal:

    cat /proc/mounts(lub mountlub cat /etc/mtab)

    i sprawdź dane wyjściowe, jeśli katalog jest podłączony tylko do odczytu.

W pierwszym przypadku zmień atrybuty katalogu za pomocą chattr;

  • usuń niezmienną flagę z pliku lub katalogu chattr -i <file/dir>
  • ponowne dodanie niezmiennej flagi do pliku lub katalogu chattr +i <file/dir>

W drugim przypadku edytuj plik /etc/fstab.

girardengo
źródło
whoami - wyjściowy root wypróbowałem cp -f i sudo cp -f, ale ponownie daje błąd
user278122
Wprowadziłem niewielką zmianę w mojej odpowiedzi: skopiowałem polecenie z twojego pytania, ale jest błąd: polecenie, jak napisałeś, zastąpi udev, musisz dodać /.na końcu polecenia, aby skopiować pliki w katalog
girardengo
próbowałem: 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 Nie rozumiem, jestem rootem, ale nie kopiowałem gdzie jest problem
278122
Zredagowałem swoją odpowiedź, post w twoim pytaniu również wyjście mountilsattr /lib/
girardengo
mount / lib / - mount: nie można znaleźć / lib / w / etc / fstab lub / etc / mtab lsattr / lib / - Niewłaściwy ioctl dla urządzenia podczas odczytu flag na wyjściu lib / filename dla każdego pliku
278122
3

Nie jest to konieczne za każdym razem, gdy musisz być rootem w tym celu. Jeśli chcesz to zrobić z użytkownikiem root, jest w porządku, ale jeśli chcesz to zrobić bez roota, masz 2 opcje:

  1. Sprawdź uprawnienia do pliku. Musisz mieć do tego uprawnienia do odczytu
  2. Sprawdź, czy plik lub łącze o tej samej nazwie nie znajduje się w katalogu docelowym. Ponieważ jeśli link o tej samej nazwie znajduje się w katalogu docelowym, nie pozwoli ci to zrobić, a także nie ostrzeże, że link o tej samej nazwie jest obecny
Kailas Andhale
źródło
1

Wypróbuj jako cp /tmp/ok_pcscd_hotplug.sh /lib/udev/użytkownik root.

Sambit
źródło
nie zmieniaj, ponownie podaje błąd - root @ atrust-00351A: / lib # ls-l drwxrwxrwx 4 root root 324 2009-05-22 11:40 udev
user278122
Proszę zamieścić dane wyjściowe whoamiils -al /tmp/ok_pcscd_hotplug.sh
Sambit
whoami - wyjściowy root ls -al /tmp/ok_pcscd_hotplug.sh - wyjściowy -rwxr-xr-x 1 root root 229
user278122
Następnie upewnij się, że ok_pcscd_hotplug.shnie jest uszkodzony i /lib/udev/istnieje w twoim systemie.
Sambit
albo ok_pcscd_hot_plug.sh lub / lib / udev dostępny w systemie
user278122
1

Najpierw należy utworzyć katalog, jeśli /lib/udevnie istnieje

mkdir -p /lib/udev
Farid Movsumov
źródło
0

Najpierw wykonaj „ls -l” i sprawdź uprawnienia do tego katalogu. Jeśli widzisz coś w rodzaju -rw-r - r--, oznacza to, że Właściciel może czytać-pisać, Grupa użytkowników może tylko czytać, Świat może tylko czytać. W takim przypadku wpisz następujące polecenie: „chmod 766”. Umożliwi to wykonywanie operacji odczytu i zapisu na tym pliku. Teraz spróbuj skopiować ten plik w ten sam sposób. To powinno działać

przechodzień
źródło
* chmod 766 <plik / katalog>
przechodzień Do
1
Nadal możesz edytować odpowiedź i dodać ją. I nie wierzę w udzielanie użytkownikom wszystkich uprawnień. Zamiast tego, jeśli folder / plik ma być zalogowany jako użytkownik z uprawnieniami. Dzięki. :-)
Kulfy