cp - не вдається створити звичайний файл: дозвіл відхилено


23

Я хочу копію, /lib/udevале дає помилку

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

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

Я корінь, але не можу зрозуміти. що я можу зробити ?


У моєму випадку, коли мені потрібно було скопіювати щось на exFAT, це не вдалось у кожному файлі, який мав "|" в його імені файлу.
neverMind9

Відповіді:


24

Перевірте, чи справді ви суперпопулярний:

whoami

якщо вихід є root, то ви є суперпользовательским і можете зробити копію файла за допомогою:

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

інакше вам доведеться використовувати sudo:

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

Якщо ви все ще не можете записати в каталог, можливо, що:

  1. у каталозі увімкнено незмінний прапор. перевірити lsattr.
  2. каталог монтується з дозволами лише для читання: введіть термінал:

    cat /proc/mounts(або mountабо cat /etc/mtab)

    і перевірити вихід, якщо каталог встановлений лише для читання.

Якщо ви в першому випадку, змініть атрибути каталогу на chattr;

  • видалити незмінний прапор з файлу чи каталогу chattr -i <file/dir>
  • знову додавши незмінний прапор у файл чи каталог chattr +i <file/dir>

Якщо ви в останньому випадку, відредагуйте файл /etc/fstab.


whoami - вихідний корінь Я спробував cp -f та sudo cp -f, але знову дає помилку
user278122

Я змінив свою відповідь: я скопіював команду з вашого запитання, але виникла помилка: команда, як ви написали, буде перезаписати udev, ви повинні додати /.в кінці команди, щоб скопіювати файли в каталог
girardengo

я спробував: 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 я не розумію, я корінь, але не скопіював, де проблема
user278122

Я відредагував свою відповідь, опублікував у вашому запитанні також вихід mountтаlsattr /lib/
girardengo

mount / lib / - mount: не вдалося знайти / lib / in / etc / fstab або / etc / mtab lsattr / lib / - Невідповідний ioctl для пристрою під час читання прапорів на виводі lib / filename для кожного файлу
user278122

3

Це не обов'язково кожен раз, коли вам потрібно мати root для цієї мети. Отже, якщо ви хочете зробити це з користувачем root його штрафом, але якщо ви хочете зробити це без root, то у вас є 2 варіанти:

  1. Перевірте дозволи файлу. Ви повинні мати права на читання до цього
  2. Переконайтеся, що файл або посилання з таким самим іменем немає в каталозі призначення. Оскільки, якщо посилання з тим самим іменем є в каталозі призначення, воно не дозволить вам це зробити, а також не попередить, що посилання з тим самим іменем присутнє

1

Спробуйте cp /tmp/ok_pcscd_hotplug.sh /lib/udev/в root користувача.


не змінювати, знову помиляється - root @ atrust-00351A: / lib # ls-l drwxrwxrwx 4 root root 324 2009-05-22 11:40 udev
користувач278122

Будь ласка, опублікуйте вихід whoamiтаls -al /tmp/ok_pcscd_hotplug.sh
Sambit

whoami - вихідний корінь ls -al /tmp/ok_pcscd_hotplug.sh - вихід -rwxr-xr-x 1 root root 229
user278122

Потім переконайтеся, що ok_pcscd_hotplug.shвін не пошкоджений та /lib/udev/існує у вашій системі.
Самбіт

або ok_pcscd_hot_plug.sh або / lib / udev доступний у системі
користувач278122


0

Спочатку зробіть "ls -l" і перевірте дозволи для цього каталогу. Якщо ви бачите щось на кшталт -rw-r - r--, це означає, що Власник може читати-писати, Usergroup може лише читати, World може лише читати. Введіть таку команду, якщо це так: "chmod 766". Це дозволить виконувати операції з читання-запису на цьому файлі. Тепер спробуйте скопіювати той самий файл. Це має працювати


* chmod 766 <file / dir>
перехожий

1
Ви все ще можете відредагувати відповідь та додати її. І я не вірю у надання всіх дозволів користувачам. Натомість, якщо папку / файл потрібно ввійти як користувач, який має привілеї. Спасибі. :-)
Кульфі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.