画面ロック/ロック解除イベントを記録するスクリプト(logscreenlock)を作成しました(ソース:この投稿):
#! /bin/bash
dbus-monitor --session "type='signal',interface='org.gnome.ScreenSaver'" | ( while true; do read X; if echo $X | grep "boolean true" &> /dev/null; then echo `date` "screen locked"; elif echo $X | grep "boolean false" &> /dev/null; then echo `date` "screen unlocked"; fi done )
起動デーモンを実行したいですlogscreenlock > /var/log/screenlock.log
。 /var/logに書き込むにはroot権限が必要です(私はsudoerです)。それで、私がしなければならないのにsudo logscreenlock > /var/log/screenlock.log
2つの質問があります。
- logscreenlockは私のユーザーの所有者なので、そのままにしたいのですが、それ以降もそうしようとすると
chmod a+x logscreenlock
拒否されますsudo ./logscreenlock
。頑張ってたけどusermod -a -G <myusergroup> root
運がなかった。この問題をどのように克服できますか? - 起動アプリケーションでsudoを使用する方法は?すぐにパスワードの入力を求められますか?
編集:後でrootとしてlogscreenlockを実行できない理由は、スクリプトがリモートファイルシステムにあり、自分のコンピュータのルートが認証されていないためです。
答え1
お客様のユーザー名とグループが次のとおりです。リカプ試してみsudo chgrp ricab /var/log/screenlock.log
ましたsudo chmod g+rw /var/log/screenlock.log
か?それでは読んで書くことを知っておくべきです。画面ロックログあなたのアカウントを使用してください。
答え2
/var/log
root以外のユーザーが書き込めないのは正常です。 sudoを呼び出すのは良い解決策ではありません。実際に必要な場合を除き、権限を拡大しないでください。ホームディレクトリにログファイルを書き込みます。
logscreenlock >~/.screenlock.log