web-dev-qa-db-ja.com

「ルート」プログラムを特権なしで実行することを許可します

ctrl-alt-lショートカットを変更したため、画面をロックするだけでなく、システムがサスペンド状態になります。

(参照用に、コマンドはgksudo pm-suspend-hybridです)

ご覧のとおり、プログラムはルートとして実行する必要があるため、gksudoを追加しました。パスワードを入力せずにシステムを一時停止させたいのです。これを行う方法はありますか?

4
jackweirdy

ターミナルを開き、Sudo visudoを実行します。

次に、sudoersファイルを編集して、パスワードを使用して、または使用せずに、rootとしてコマンドを実行できるユーザーを指定できます。ファイルの最後に、次のいずれかの行を貼り付けます

nonprivilegeduser ALL=NOPASSWD:/usr/sbin/pm-suspend-hybrid

すべてのユーザーがパスワードなしでルートとしてそのコマンドを実行できるようにするため、または

Your_Username ALL=NOPASSWD:/usr/sbin/pm-suspend-hybrid

ユーザーだけがこれを行えるようにします(もちろん、ユーザーに合わせて調整する必要があります)。次に、ファイルを保存し(Ctrl + O)、プログラムを終了します(Ctrl + X)。

最後に、Sudo pm-suspend-hybridではなくgksudo pm-suspend-hybridを読み取るようにコマンドを編集する必要があります。

注:dbusでこれを行う可能性もあります(sudoersを編集する必要はありません)が、このソリューションにはすべてのUIで機能するという利点があります。

11
jPlatte

通常、これが SUIDビット の目的ですが、あなたの場合、おそらくpm-suspend-hybridをルート権限を必要としない別の呼び出しに置き換えます(中断時にパスワードを入力する必要はありません)団結、結局)。

代わりに次のコマンドを使用してください(Sudoなし):

dbus-send --print-reply --system --dest=org.freedesktop.UPower /org/freedesktop/UPower org.freedesktop.UPower.Suspend

参照:

1
jnv
  1. 次のコマンドを入力します。

    Sudo visudo
    

    次に、パスワードを入力します。

  2. ターミナルで以下の行を見ることができます

    %Sudo   ALL=(ALL:ALL) ALL
    

    %Sudo行を編集します

    %Sudo   ALL=(ALL:ALL) NOPASSWD:ALL
    
  3. を使用して変更を保存します CtrlX

0