背景

背景

背景

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
gksugksudo

追加情報:

他のユーザーへのLinux実行コマンド

他のユーザーとしてGUIアプリケーションを実行します。

他のユーザーとしてGUIアプリケーションを実行する前に、ターゲットユーザーがモニターに接続できるようにする必要があります。次に、
xhost +si:localuser:user
///を使用してrunuserアプリケーションを実行し、次を使用して後続の接続をブロックする必要があります。susudopkexec
xhost
xhost -si:localuser:user

おすすめ記事