背景
mail-notification
一部のプログラム(およびstalonetray
)が頻繁に停止しているようで、定期的に再起動しようとしています。 NetworkManagerが再接続すると再起動するように設定したいと思います。したがって/etc/NetworkManager/dispatcher.d/
。
スクリプト
以下のようにスクリプトを作成できます。
#!/bin/bash
sudo -u foo_user pkill mail-notificati -x
sudo -u foo_user DISPLAY=:0 mail-notification &
ユーザーとして直接実行するとうまくいきます。ただし、ルートスクリプトから呼び出すと失敗します。パスワードを入力するように求められますmail-notification
。 Gnome キーリングを読み込めません。
foo_user
このプログラムをさまざまな方法でどのように実行できますか?
ベストアンサー1
2021
簡単に言うと:
他のユーザーでコマンドを実行するには、次のコマンドを使用できます。
runuser -u user -- command
他のユーザーとしてコマンドを実行するためにルートでのみ使用できます。
認証は不要です。
ログメッセージは生成されません。
権限の制限と問題があります。
su - user -c command
すべてのユーザーが利用できます。
ターゲットユーザーとして認証が必要です。またはで
メッセージを作成してください。/var/log/auth.log
/var/log/secure
sudo -u user command
root権限を持つユーザーまたはファイルのユーザーが使用できますsudoers
。
現在のユーザー(あなた)として認証が必要です。またはで
メッセージを作成します。/var/log/auth.log
/var/log/secure
pkexec --user user command
すべてのユーザーが利用できます。
ターゲットユーザーとして認証が必要です。またはで
メッセージを作成してください。またはなどの代替GUIツール。/var/log/auth.log
/var/log/secure
gksu
gksudo
追加情報:
他のユーザーとしてGUIアプリケーションを実行します。
他のユーザーとしてGUIアプリケーションを実行する前に、ターゲットユーザーがモニターに接続できるようにする必要があります。次に、
xhost +si:localuser:user
///を使用してrunuser
アプリケーションを実行し、次を使用して後続の接続をブロックする必要があります。su
sudo
pkexec
xhost
xhost -si:localuser:user