182 votes

Comment résoudre le problème de "permission denied" lors de l'utilisation de sudo avec redirection dans Bash ?

Lorsque j'utilise sudo pour autoriser la modification de fichiers, je reçois régulièrement le message "permission denied".

Par exemple, ma souris est instable et lente, je veux donc désactiver l'interrogation :

sudo echo "options drm_kms_helper poll=N">/etc/modprobe.d/local.conf

On me demande un mot de passe, puis on me demande :

bash: /etc/modprobe.d/local.conf: Permission denied

J'ai donc essayé de faire un changement temporaire pour désactiver les sondages en utilisant :

sudo echo N> /sys/module/drm_kms_helper/parameters/poll

Encore une fois, le système a répondu par :

bash: /sys/module/drm_kms_helper/parameters/poll: Permission denied

Des idées ?

4voto

sudo dd of=

Pour ajouter ce que vous voulez :

echo inbytes | sudo dd of=outfile oflag=append conv=notrunc

ou de recréer le fichier à partir de zéro :

echo inbytes | sudo dd of=outfile

Avantages :

Ça marche parce que sudo transmet stdin à la commande.

1voto

Seamus Points 381

Créez un script d'une ligne à partir de votre commande, puis exécutez le script en tant que sudo . Par exemple :

  1. Utilisez un éditeur pour créer un fichier ; par exemple :

    nano my_script.sh
  2. Dans l'éditeur, insérez votre shebang, et la commande :

    #!/bin/bash  
    echo "options drm_kms_helper poll=N" > /etc/modprobe.d/local.conf  
  3. Sauvegardez le fichier et quittez l'éditeur ; par ex. ~/my_script.sh

  4. Rendre le fichier exécutable :

    chmod 755 ~/my_script.sh
  5. Exécutez le script sous sudo :

    sudo ./my_script.sh

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X