Remplir un fichier de configuration avec sudo
Bonjour,
J'essai de créer un fichier bash de configuration avec sudo
1er essai
FICHIER="/etc/default/asterisk" #sudo bash -c "cat <<EOF>> $FICHIER # Startup configuration for the Asterisk daemon # Uncomment the following and set them to the user/groups that you # want to run Asterisk as. NOTE: this requires substantial work to # be sure that Asterisk's environment has permission to write the # files required for its operation, including logs, its comm # socket, the asterisk database, etc. #AST_USER="asterisk" #AST_GROUP="asterisk" AST_USER="asterisk" AST_GROUP="asterisk" # If you DON'T want Asterisk to start up with terminal colors, comment # this out. COLOR=yes # If you want Asterisk to run with a non-default configuration file, # uncomment the following option, and set the value appropriately. #ALTCONF=/etc/asterisk/asterisk.conf # In the case of a crash, Asterisk may create a core file. Uncomment # if you want this behavior. #COREDUMP=yes # Asterisk may establish a maximum load average for the system. This # may be useful to prevent a flood of calls from taking down the system. #MAXLOAD=4 # Or, if you'd prefer, you can limit the maximum number of calls. #MAXCALLS=1000 # Default console verbosity. This may be raised or lowered on the console. # Note this is analogous to the -v command line switch, which by default # will cause Asterisk to start in console mode and run in the foreground, # unless the always fork (-F) option is also provided. #VERBOSITY=3 # Enable internal timing if the DAHDI timer is available. The default # behaviour is that outbound packets are phase locked to inbound packets. # Enabling this option causes them to be locked to the internal DAHDI # timer instead. #INTERNALTIMING=yes # Start all recordings into a temporary directory, before moving them to # their final location. #TEMPRECORDINGLOCATION=yes #EOF"
bash me retourne :
bash: line 49: warning: here-document at line 1 delimited by end-of-file (wanted `EOF')
2em essai
FICHIER="/etc/default/asterisk" sudo echo -e " # Startup configuration for the Asterisk daemon # Uncomment the following and set them to the user/groups that you # want to run Asterisk as. NOTE: this requires substantial work to # be sure that Asterisk's environment has permission to write the # files required for its operation, including logs, its comm # socket, the asterisk database, etc. #AST_USER="asterisk" #AST_GROUP="asterisk" AST_USER="asterisk" AST_GROUP="asterisk" # If you DON'T want Asterisk to start up with terminal colors, comment # this out. COLOR=yes # If you want Asterisk to run with a non-default configuration file, # uncomment the following option, and set the value appropriately. #ALTCONF=/etc/asterisk/asterisk.conf # In the case of a crash, Asterisk may create a core file. Uncomment # if you want this behavior. #COREDUMP=yes # Asterisk may establish a maximum load average for the system. This # may be useful to prevent a flood of calls from taking down the system. #MAXLOAD=4 # Or, if you'd prefer, you can limit the maximum number of calls. #MAXCALLS=1000 # Default console verbosity. This may be raised or lowered on the console. # Note this is analogous to the -v command line switch, which by default # will cause Asterisk to start in console mode and run in the foreground, # unless the always fork (-F) option is also provided. #VERBOSITY=3 # Enable internal timing if the DAHDI timer is available. The default # behaviour is that outbound packets are phase locked to inbound packets. # Enabling this option causes them to be locked to the internal DAHDI # timer instead. #INTERNALTIMING=yes # Start all recordings into a temporary directory, before moving them to # their final location. #TEMPRECORDINGLOCATION=yes #" >> $FICHIER
Il y a bien le fichier de rempli mais il ecrit :
AST_USER=asterisk
AST_GROUP=asterisk
au lieu de
AST_USER="asterisk"
AST_GROUP="asterisk"
3em essai
FICHIER="/etc/default/asterisk" sudo bash -c "echo \" # Startup configuration for the Asterisk daemon # Uncomment the following and set them to the user/groups that you # want to run Asterisk as. NOTE: this requires substantial work to # be sure that Asterisk's environment has permission to write the # files required for its operation, including logs, its comm # socket, the asterisk database, etc. #AST_USER="asterisk" #AST_GROUP="asterisk" AST_USER="asterisk" AST_GROUP="asterisk" # If you DON'T want Asterisk to start up with terminal colors, comment # this out. COLOR=yes # If you want Asterisk to run with a non-default configuration file, # uncomment the following option, and set the value appropriately. #ALTCONF=/etc/asterisk/asterisk.conf # In the case of a crash, Asterisk may create a core file. Uncomment # if you want this behavior. #COREDUMP=yes # Asterisk may establish a maximum load average for the system. This # may be useful to prevent a flood of calls from taking down the system. #MAXLOAD=4 # Or, if you'd prefer, you can limit the maximum number of calls. #MAXCALLS=1000 # Default console verbosity. This may be raised or lowered on the console. # Note this is analogous to the -v command line switch, which by default # will cause Asterisk to start in console mode and run in the foreground, # unless the always fork (-F) option is also provided. #VERBOSITY=3 # Enable internal timing if the DAHDI timer is available. The default # behaviour is that outbound packets are phase locked to inbound packets. # Enabling this option causes them to be locked to the internal DAHDI # timer instead. #INTERNALTIMING=yes # Start all recordings into a temporary directory, before moving them to # their final location. #TEMPRECORDINGLOCATION=yes \" > $FICHIER"
Idem, il y a bien le fichier de rempli mais il écrit :
AST_USER=asterisk
AST_GROUP=asterisk
au lieu de
AST_USER="asterisk"
AST_GROUP="asterisk"
Pouvez vous m'aider ?
Merci d'avance pour vos avis et conseils.
Linux / Firefox 120.0
- Remplir un fichier de configuration avec sudo
- Ethernet n'a pas de configuration ip valide - Guide
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
3 réponses
Bonjour,
Je te propose d'utiliser l'outil "tee" afin d'écrire le contenu vers le fichier spécifié.
L'écriture se faisant par le programme tee, le programme cat peut être exécuté normalement (sans privilège root).
Voici un exemple à adapter :
cat <<EOF | sudo tee /chemin/vers/fichier.txt contenu... EOF
Bonjour,
ça ne vas pas, le texte est tout noir, il n'y a plus la couleur du texte, il y a un problème avec :
FICHIER="/etc/default/asterisk" cat <<EOF | sudo tee $FICHIER # Startup configuration for the Asterisk daemon # Uncomment the following and set them to the user/groups that you # want to run Asterisk as. NOTE: this requires substantial work to # be sure that Asterisk's environment has permission to write the # files required for its operation, including logs, its comm # socket, the asterisk database, etc. #AST_USER="asterisk" #AST_GROUP="asterisk" AST_USER="asterisk" AST_GROUP="asterisk" # If you DON'T want Asterisk to start up with terminal colors, comment # this out. COLOR=yes # If you want Asterisk to run with a non-default configuration file, # uncomment the following option, and set the value appropriately. #ALTCONF=/etc/asterisk/asterisk.conf # In the case of a crash, Asterisk may create a core file. Uncomment # if you want this behavior. #COREDUMP=yes # Asterisk may establish a maximum load average for the system. This # may be useful to prevent a flood of calls from taking down the system. #MAXLOAD=4 # Or, if you'd prefer, you can limit the maximum number of calls. #MAXCALLS=1000 # Default console verbosity. This may be raised or lowered on the console. # Note this is analogous to the -v command line switch, which by default # will cause Asterisk to start in console mode and run in the foreground, # unless the always fork (-F) option is also provided. #VERBOSITY=3 # Enable internal timing if the DAHDI timer is available. The default # behaviour is that outbound packets are phase locked to inbound packets. # Enabling this option causes them to be locked to the internal DAHDI # timer instead. #INTERNALTIMING=yes # Start all recordings into a temporary directory, before moving them to # their final location. #TEMPRECORDINGLOCATION=yes EOF echo "FICHIER : $FICHIER"
Bonjour,
De quelles couleurs parles-tu ? C'est du texte brut, ça n'a pas de couleur.
Si tu parles de la couleur au niveau de ton éditeur de code, où tu écris ton code Bash : il est possible qu'il considère le texte "heredoc" comme une chaine de texte et qu'il n'y applique pas la coloration syntaxique Bash
Si tu parles au moment où tu ouvres le fichier /etc/default/asterisk : il faut utiliser un éditeur de texte qui ajoute la couleur pour les fichiers de configuration, c'est pas forcément activé par défaut avec nano ou vim.
Le contenu est-il bien inscrit dans /etc/default/asterisk ?
Bonjour,
Il y a plein de problèmes :
- dans #1 : l'indentation est mauvaise, les guillemets ne sont pas échappés ;
- dans #3 : ce n'est pas cat mais echo qu'il faut utiliser.
Voici comment tu peux procéder :
#!/bin/sh chats="CHATS" echo > fichier.txt << EOF "j'aime les chats j'aime les $chats" EOF cat fichier.txt
Résultat :
j'aime les chats
j'aime les CHATS
Bonne chance