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

Я root, но не могу понять. что мне делать ?

user278122
источник
В моем случае, когда мне нужно было что-то скопировать в 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.

Girardengo
источник
whoami - вывести root я попробовал 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 Я не понимаю, я root, но не скопировал, где проблема
user278122
Я отредактировал свой ответ, пост в вашем вопросе также вывод mountиlsattr /lib/
girardengo
mount / lib / - mount: не удается найти / lib / в / 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.

Sambit
источник
не изменяется, снова выдает ошибку - root @ atrust-00351A: / lib # ls-l drwxrwxrwx 4 root root 324 2009-05-22 11:40 udev
user278122
Пожалуйста, whoamils -al /tmp/ok_pcscd_hotplug.sh
опубликуйте
whoami - вывести root ls -al /tmp/ok_pcscd_hotplug.sh - вывести -rwxr-xr-x 1 корневой корень 229
user278122
Затем убедитесь, что ok_pcscd_hotplug.shон не поврежден и /lib/udev/существует в вашей системе.
Самбит
либо ok_pcscd_hot_plug.sh, либо / lib / udev доступны в системе
user278122
1

Вы должны сначала создать каталог, если /lib/udevон не существует

mkdir -p /lib/udev
Фарид Мовсумов
источник
0

Сначала выполните «ls -l» и проверьте разрешения для этого каталога. Если вы видите что-то вроде -rw-r - r--, это означает, что Владелец может читать-писать, Группа пользователей может только читать, Мир может только читать. Введите следующую команду, если это так: "chmod 766". Это позволит вам выполнять операции чтения-записи для этого файла. Теперь попробуйте скопировать этот файл таким же образом. Он должен работать

проезжий
источник
* chmod 766 <file / dir>
passerBy
1
Вы все еще можете отредактировать ответ и добавить его. И я не верю в предоставление всех разрешений пользователям. Вместо этого, если нужно сделать папку / файл, войдите в систему как пользователь, имеющий права. Благодарю. :-)
Kulfy