Error de permiso denegado al crear un archivo mediante un archivo de secuencia de comandos

Error de permiso denegado al crear un archivo mediante un archivo de secuencia de comandos

He creado un archivo de script llamadolista_negra.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

a partir de este archivo de script que estoy creandosonido.listanegra.confarchivar /etc/modprobe.dpero me salió /etc/modprobe.d/sound.blacklist.conf: Permission deniedun error.

Así que lo intenté

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

pero tampoco funcionó, ¿cómo puedo crear un archivo en /etc/modprobe.del directorio desde miarchivo de comandos.

Respuesta1

Yo personalmente usaría tee, que puedes ejecutar como root para agregarlo a los archivos:

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

Pero tal vez no se espere eso a mitad de camino de un guión. Si estás haciendo cosas que requieren privilegios de root, podría tener más sentido (y no lo digo con certeza) dejar que el root ejecute el script colocando esto cerca de la parte superior del script:

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

Respuesta2

Pruebe este comando,

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

Respuesta3

También debe adjuntar la redirección de salida sudo.

Para mí, la manera más fácil de hacer esto es no poner elsudodentro de su script, pero para ejecutar su script usandosudo.

Para comprender su problema, si tiene el siguiente comando: $ sudo " " > /etc/file

ElsudoLa acción es solo ejecutar <command> <params>, la redirección de la salida ( >) ocurre fuera delsudoen este caso.

información relacionada