GNU/Linux >> Tutoriels Linux >  >> Linux

Comment exécuter une commande qui implique une redirection ou une canalisation avec Sudo ?

J'essaie de suivre ce que je suppose être les meilleures pratiques d'utilisation de sudo au lieu du compte root.

J'exécute une simple opération de fichier concat telle que :

sudo echo 'clock_hctosys="YES"' >> /etc/conf.d/hwclock

Cela échoue car à droite du ">>", il s'exécute en tant qu'utilisateur normal. L'ajout de sudos supplémentaires échoue également (comportement attendu puisque la canalisation vers la commande sudo et non vers le fichier).

L'exemple n'est que cela, mais il a été vérifié et testé sous le compte root.

Réponse acceptée :

Vous pouvez invoquer un nouveau shell en tant que root :

sudo sh -c 'echo clock_hctosys="YES" >> /etc/conf.d/hwclock'

Vous pouvez également simplement élever un processus pour écrire dans le fichier :

sudo tee -a /etc/conf.d/hwclock > /dev/null << EOF
clock_hctosys="YES"
EOF

Linux
  1. Comment exécuter une commande en tant qu'administrateur système (racine) ?

  2. Comment utiliser sudo pour permettre à un utilisateur non root d'exécuter une commande particulière

  3. Ubuntu - Exécuter la commande au démarrage avec sudo

  4. Exécutez ifconfig sans sudo

  5. Comment exécuter une commande en arrière-plan avec un délai ?

Comment exécuter une commande avec limite de temps (Timeout) sous Linux

Comment exécuter la commande Sudo sans mot de passe

Comment exécuter un alias avec Sudo sous Linux

Comment exécuter un audit de sécurité sur AlmaLinux avec Lynis

Comment exécuter la commande SUDO dans WinSCP pour transférer des fichiers de Windows vers Linux

Comment déterminez-vous la commande réelle qui vous parvient ?