Xを使用して特定のユーザーとグループから特定のプログラムを自動的に起動したい場合に使用する最善の方法は何ですか?
私のプログラムはGUIを持っているので、systemdを使うことはできません。
sudoパスワードを要求せずにXを自動的に起動したいです。
sudo -H -u $USER bash -c "newgrp $GROUP && /bin/command"
ほぼ終わりました。ただし、sudoパスワードを入力する必要があります。
ベストアンサー1
sudo
デフォルトグループはオプションを使用して設定できるため、-g
使用する必要はありません。ユーザーがパスワードなしですべてのユーザーとして実行できるようにnewgrp
構成することもできます。sudo
/bin/command
たとえば、次のように追加します/etc/sudoers
(実行いいえファイルを直接編集してください。使用visudo
。 sudoers ファイル全体を無効にする構文エラーが発生しないように、変更の完全性チェックを実行します。それでも論理エラーが発生する可能性がありますが、/ etc / sudoerssudo
がまったく利用できないポイントまで損傷することはありません。
username ALL = (ALL) NOPASSWD: /bin/command
次に実行します。
sudo -H -u "$USER" -g "$GROUP" /bin/command
コマンドを実行できるユーザー名および/またはグループを制限するには、角かっこ内のALL
内容を変更します。例えば
cas ALL = (fred, bob : mygroup, othergroup) NOPASSWD: /bin/command
ユーザーは、ユーザーまたはグループのユーザーとして、またはパスワードを持たないユーザーとして実行できますcas
。タイトル付きのセクションを見て検索してください。/bin/command
fred
bob
mygroup
othergroup
man sudoers
Runas_Spec
ただし、最初ALL
(前=
)はルールが適用されるホスト名を表します。これは、複数のシステムで同じsudoersファイルを共有し、システム管理者がsudo
一部のシステムでのみ特定のコマンドを実行する権限を必要とする場合にのみ重要です。詳細を検索Host_List
してくださいman sudoers
。
注:sudo
非常に複雑で非常に柔軟です。マニュアルページが理解されるsudo
まで読んで再読める努力は価値があります。sudoers
意図したよりも少ないまたは悪い権限を与える間違いを犯すのは簡単です。