Fehler „Berechtigung verweigert“ beim Erstellen einer Datei mithilfe einer Skriptdatei

Fehler „Berechtigung verweigert“ beim Erstellen einer Datei mithilfe einer Skriptdatei

Ich habe eine Skriptdatei namensschwarze_liste.sh.

#!/bin/bash

default_card=`head -1 /proc/asound/modules`
echo $default_card

if [ ! -e /etc/modprobe.d/sound.blacklist.conf ] && [[ "$default_card" =~ "snd_hda_intel" ]]; then
        echo "blacklist snd_hda_intel" > /etc/modprobe.d/sound.blacklist.conf ---> not working            
else
        echo "Default sound card(snd_hda_intel) is already added in black list";
fi

aus dieser Skriptdatei erstelle ichsound.blacklist.confDatei drin, /etc/modprobe.daber ich habe /etc/modprobe.d/sound.blacklist.conf: Permission deniedeinen Fehler bekommen.

So müde

echo itsme | sudo -S echo "blacklist snd_hda_intel" > /etc/modprobe.d/sound.blacklist.conf

aber es hat auch nicht funktioniert, also wie kann ich eine Datei im /etc/modprobe.dVerzeichnis erstellen von meinemSkriptdatei.

Antwort1

Ich persönlich würde tee verwenden, das Sie als Root ausführen können, um an Dateien anzuhängen:

echo "blacklist snd_hda_intel" | sudo tee -a /etc/modprobe.d/sound.blacklist.conf

Aber das erwartet man vielleicht nicht mitten in einem Skript. Wenn Sie Dinge tun, die Root-Rechte erfordern, ist es vielleicht sinnvoller – und das sage ich nicht mit Sicherheit –, das Skript nur von Root ausführen zu lassen, indem Sie Folgendes an den Anfang des Skripts setzen:

if [[ $EUID -ne 0 ]]; then
  echo "Only root can run this. Run again with sudo" 2>&1
  exit 1
fi

Antwort2

Versuchen Sie diesen Befehl,

sudo sh -c "echo 'blacklist snd_hda_intel' >  /etc/modprobe.d/sound.blacklist.conf"

Antwort3

Sie müssen die Ausgabeumleitung sudoauch darin einschließen.

Der einfachste Weg, dies zu tun, ist für mich, diesudoinnerhalb Ihres Skripts, sondern um Ihr Skript auszuführen mitsudo.

Um Ihr Problem zu verstehen, müssen Sie den folgenden Befehl ausführen: $ sudo " " > /etc/file

DersudoAktion ist nur ausführen <command> <params>, die Umleitung der Ausgabe ( >) geschieht aus demsudoin diesem Fall.

verwandte Informationen