私のコンピューターでは、pm-hibernateは壊れているように見えますが、コマンドecho disk > /sys/power/state
を使用すると完全に機能するようです。 Sudoを使用して、通常のユーザーアクセスが必要になりました。どうすればいいですか?
コマンドSudo echo disk > /sys/power/state
は、単にbash: /sys/power/state: Permission denied
を返します。
また、私はこれを定期的に使用されるスクリプトで必要としていますが、それを機能させるためにパスワードを入力する必要がないようにするにはどうすればよいですか?
リダイレクト文字は、実行と特権を「分離」することに注意してください。このコマンドで:
Sudo echo disk > /sys/power/state
あなたがしていることは、echo disk
をルート(無意味)として実行し、それを通常のユーザーとして、rootが所有するファイルにパイプすることです。そのため、許可が拒否されます。
これは非常に一般的な使用例です。あなたがする必要があるのは、代わりに実際にファイルに書き込む部分であるSudoです。
echo disk | Sudo tee /sys/power/state
以下を使用してシェルスクリプト(ファイル)を作成することもできます。
echo disk > /sys/power/state
たとえば、script.shと名前を付け、chmod 755 script.sh
を実行して、Sudoで実行します。
Sudo /wherever/you/put/this/script.sh
パスワードを必要とせずにコマンドを実行することについては、前に説明しました: パスワードを入力せずにSudoを実行するにはどうすればよいですか? 多少安全ではない場合があります。どのユーザーがパスワードなしでルートとしてどのコマンドを実行するかを制御できますが、この場合、悪意のあるユーザーが上書きできるtee
コマンドの実行を許可する必要がありますルートとしてanyファイル。したがって、注意して使用し、すべてのドキュメントを読んで、これを行うことのセキュリティへの影響を理解してください。