cp - impossible de créer un fichier normal: autorisation refusée


23

Je veux copier /lib/udevmais donne une erreur

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

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

Je suis root, mais je ne peux pas comprendre. Que puis-je faire ?


Dans mon cas, quand j'avais besoin de copier quelque chose sur exFAT, cela a échoué à chaque fichier qui avait un "|" dans son nom de fichier.
neverMind9

Réponses:


24

Vérifiez si vous êtes vraiment superutilisateur avec:

whoami

si la sortie est root, alors vous êtes superutilisateur et vous pouvez faire la copie du fichier avec:

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

sinon vous devez utiliser sudo:

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

Si vous n'êtes toujours pas en mesure d'écrire dans le répertoire, il est possible que:

  1. le répertoire a le drapeau immuable activé. vérifier avec lsattr.
  2. le répertoire est monté avec des autorisations en lecture seule: saisissez terminal:

    cat /proc/mounts(ou mountou cat /etc/mtab)

    et vérifiez la sortie, si le répertoire est monté en lecture seule.

Si vous êtes dans le premier cas, changez les attributs de répertoire avec chattr;

  • supprimer l'indicateur immuable du fichier ou du répertoire chattr -i <file/dir>
  • ajout d'indicateur immuable sur le fichier ou le répertoire chattr +i <file/dir>

Si vous êtes dans ce dernier cas, modifiez le fichier /etc/fstab.


whoami - sortie root j'ai essayé cp -f et sudo cp -f, mais donne à nouveau une erreur
user278122

J'ai apporté une petite modification à ma réponse: j'ai copié la commande de votre question, mais il y a une erreur: la commande telle que vous l'avez écrite, elle écrasera udev, vous devez ajouter /.à la fin de la commande pour copier les fichiers dans le répertoire
girardengo

j'ai essayé: 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 je ne comprends pas, je suis root mais je ne copie pas où est le problème
user278122

J'ai édité ma réponse, postez dans votre question également sortie de mountetlsattr /lib/
girardengo

mount / lib / - mount: impossible de trouver / lib / dans / etc / fstab ou / etc / mtab lsattr / lib / - ioctl inapproprié pour le périphérique lors de la lecture des indicateurs sur la sortie lib / filename pour chaque fichier
user278122

3

Ce n'est pas nécessaire à chaque fois que vous avez besoin d'être root à cet effet Donc, si vous voulez le faire avec l'utilisateur root, c'est bien, mais si vous voulez le faire sans root, alors vous avez 2 options:

  1. Vérifiez les autorisations du fichier. Vous devez avoir des autorisations de lecture
  2. Vérifiez que le fichier ou le lien portant le même nom n'est pas présent dans le répertoire de destination. Parce que si le lien avec le même nom est là dans le répertoire de destination, il ne vous permettra pas de le faire et ne préviendra pas non plus que le lien avec le même nom est présent

1

Essayez cp /tmp/ok_pcscd_hotplug.sh /lib/udev/en tant qu'utilisateur root.


ne change pas, donne à nouveau une erreur - root @ atrust-00351A: / lib # ls-l drwxrwxrwx 4 root root 324 2009-05-22 11:40 udev
user278122

Veuillez poster la sortie whoamietls -al /tmp/ok_pcscd_hotplug.sh
Sambit

whoami - sortie racine ls -al /tmp/ok_pcscd_hotplug.sh - sortie -rwxr-xr-x 1 racine racine 229
user278122

Assurez-vous ensuite qu'il ok_pcscd_hotplug.shn'est pas corrompu et qu'il /lib/udev/existe dans votre système.
Sambit

soit ok_pcscd_hot_plug.sh ou / lib / udev disponible sur le système
user278122

1

Vous devez d'abord créer un répertoire s'il /lib/udevn'existe pas

mkdir -p /lib/udev

0

Faites d'abord "ls -l" et vérifiez les autorisations pour ce répertoire. Si vous voyez quelque chose comme -rw-r - r--, cela signifie que le propriétaire peut lire-écrire, le groupe d'utilisateurs ne peut que lire, World ne peut que lire. Tapez la commande suivante si c'est le cas: "chmod 766". Cela vous permettra d'effectuer des opérations de lecture-écriture sur ce fichier. Essayez maintenant de copier ce fichier de la même manière. Ça devrait marcher


* chmod 766 <file / dir>
passerPar

1
Vous pouvez toujours modifier la réponse et l'ajouter. Et je ne crois pas à accorder toutes les autorisations aux utilisateurs. Au lieu de cela, si le dossier / fichier doit être créé, connectez-vous en tant qu'utilisateur disposant de privilèges. Merci. :-)
Kulfy
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.