Pm-hibernate semble être en panne, mais la commande echo disk > /sys/power/state
semble fonctionner parfaitement. Maintenant, j'ai juste besoin d'un accès utilisateur régulier, à l'aide de Sudo. Comment puis-je faire cela?
La commande Sudo echo disk > /sys/power/state
renvoie simplement bash: /sys/power/state: Permission denied
.
En outre, j'ai besoin de cela dans un script régulièrement utilisé, comment puis-je le faire pour que je n'ai pas à taper mon mot de passe pour que cela fonctionne ???
Notez que les caractères de redirection "séparent" l'exécution et les privilèges. Sur cette commande:
Sudo echo disk > /sys/power/state
Ce que vous faites est d'exécuter echo disk
en tant que root (inutile), puis de le canaliser, en tant qu'utilisateur normal, dans un fichier appartenant à root. C'est pourquoi l'autorisation vous est refusée.
Il s’agit d’un cas d’utilisation très courant. Ce que vous devez faire est Sudo, la partie qui écrit réellement dans le fichier, quelque chose comme cela fonctionne:
echo disk | Sudo tee /sys/power/state
Vous pouvez également créer un script Shell (un fichier) avec:
echo disk > /sys/power/state
Nommez-le, par exemple, script.sh, puis exécutez chmod 755 script.sh
et exécutez-le avec Sudo:
Sudo /wherever/you/put/this/script.sh
En ce qui concerne l’exécution d’une commande sans mot de passe, nous en avons déjà parlé: Comment puis-je utiliser Sudo sans avoir à saisir mon mot de passe? . Cela peut être quelque peu précaire; vous pouvez contrôler quel utilisateur doit exécuter quelle commande en tant qu'utilisateur root sans mot de passe, mais dans ce cas, vous devez autoriser l'exécution de la commande tee
qui pourrait permettre à des utilisateurs malveillants de remplacer n'importe quel fichier en tant que root. Donc, utilisez avec prudence et s'il vous plaît lire toute la documentation et comprendre les implications pour la sécurité de le faire.