Linuxでパスワードなしの「sudo」を設定する方法は?


156

sudoRHEL(Fedora、CentOSなど)またはUbuntuディストリビューションでパスワードなしのアクセスを設定するにはどうすればよいですか?(ディストリビューション間で同じ場合、さらに良いです!)

設定:不正アクセスの心配のない個人用および/または実験室/トレーニング機器(つまり、デバイスは非パブリックネットワーク上にあり、すべてのユーザーは完全に信頼されており、デバイスの内容は「プレーンバニラ」です) 。


1
@Richipalからの答えは、最小の労力で最高に機能するアクチュレーです。sudoersルールは逆の順序で適用されるようです。
a1an

2
@ a1anルールは、sudoersファイルにリストされているのと同じ順序で適用され、適用されると、相互にオーバーライドします。したがって、ルールをまったく変更したくない場合は、最後に適用されて上書きできないように、ファイルの最後に向かって配置します。
rsjethani

回答:


173

medinaのコメントのおかげで編集:manページによると、あなたは書くことができるはずです

ALL            ALL = (ALL) NOPASSWD: ALL

すべてのユーザーがパスワードなしですべてのコマンドを実行できるようにします。


参考のために、以前の回答を残しておきます。

フォームの行を追加する場合

%wheel         ALL = (ALL) NOPASSWD: ALL

/etc/sudoers(使用visudoはもちろん、コマンド)を、それがグループの誰もができるようになるwheelパスワードを入力せずに任意のコマンドを実行します。ですから、最良の解決策はすべてのユーザーをあるグループに入れ、そのような行を入れるsudoersことだwheelと思います-明らかに、実際に使用するグループに置き換える必要があります。

または、ユーザーエイリアスを定義して、

User_Alias     EVERYONE = user1, user2, user3, ...

そしてそれを使用します:

EVERYONE       ALL = (ALL) NOPASSWD: ALL

ただし/etc/sudoers、ユーザーを追加または削除するたびに更新する必要があります。


2
すべてのユーザーを指定するのALLではなく、機能しません*か?の例を参照してくださいsudoers(5)
メディナ

1
@medina:そのため、manページを読んでいたときにそれを見逃しました。編集します。
デビッドZ

6
Ubuntuの下、/etc/sudoers.d下にファイルを作成し、その中でこれらのエントリを入れて、それはsudoersファイルを編集する必要があなたを停止します
Xetius

1
CentOS7では、このエントリはデフォルトであり、コメントアウトされています。
-killjoy

1
コピー/貼り付けによってcentOSでのみ使用でき、構成を直接入力しようとするたびに失敗しました。しかし、結果は...スペースを除いて同一と思われる
MUYベルギー

96

上記のソリューションを試してみましたが、役に立ちませんでした。次のソリューションは私のために働いた/ etc / sudoersファイルを編集し、次の行を追加します

username ALL=(ALL) NOPASSWD: ALL

キーが言う最後の行の後にそれを追加することです

#includedir /etc/sudoers.d

1
//、これはそれを行うためのより良い方法のように見えます。特に、特定のアプリケーションがシステムユーザー、Richipalに対して独自のルールを追加する場合です。sudoers.dの詳細:sudo.ws/man/1.8.13/sudoers.man.html
ネイサンバサニーズ

1
//、Gearoid Murphyの診断の一部を回答に追加してもよろしいですか?
ネイサンバサニーズ

1
この説明をありがとう。以前のCentOS 6でファイルの行を持って正常に動作するようです一方#includedirの/etc/sudoers.dラインはCentOSの7で重要なようだ後にそれを追加
dmohr

3
%wheelのNOPASSWDを無視する問題は/etc/sudoers.d/USERNAME、グループのNOPASSWD許可をオーバーライドすることから生じるようです。NOPASSWDを適用/etc/sudoers.d/USERNAMEすると、問題が解決します。
うなぎghEEz

1
インクルードが重要になった後、これまでの話
セオドア・ハウエル

27

このページのすべての回答を試しましたが、有用な結果は得られませんでした。最終的に私はそれを理解し、このコマンドを使用してsudo権限をリストします。

sudo -l

これにより、次のような出力が得られます。

User gmurphy may run the following commands on this host:
    (root) NOPASSWD: ALL
    (ALL) ALL

ルート権限で設定されているが、パスワード( "(ALL)ALL")を要求するsudoルールに一致するグループ(admin)の一部であることを示しています。これにより、sudoがプロンプトを表示するように強制されました。問題のルールは管理ユーザーでした:

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

これをコメントアウトすると、パスワードなしでsudoを実行できました。これが他の誰かに役立つことを願っています。


1
ああ、ありがとう!これは私を夢中にさせていました...私の場合、私のユーザーは「sudo」グループと「admin」(私が作成した)の一部であり、それぞれの権限はあなたの場合のように不一致でした。これでうまくいきます!:)
ニーザー

14
行をコメントアウトすることは、鈍器です。あなたはそれを聞いて興味がある可能性に応じて、「sudoはsudoersファイルを読み込み、上から下への順でアクセス許可を適用するファイルの最後の行は、以前の競合が上書きされますので。」ubuntuforums.org/showthread.php?t=1132821 - -そしてこれは私のために働いた。
デビッドJ.


6

sudoersファイルに触れずにそれを行う別の方法があります。

  • /etc/pam.d/su以下の行を編集してコメント解除します。

    auth           sufficient      pam_wheel.so trust use_uid
    
  • ユーザーをwheelグループに追加します。


2

sudoersファイルに触れずにそれを行う別の方法があります。

  • /etc/pam.d/sudo以下の行を編集して追加します。

    十分な認証pam_wheel.so trust use_uid
  • ユーザーをwheelグループに追加します。

「sudo」ではなく「su」に関する元の回答については、「topdog」および「Daniel Serodio」に賛成です。私はそれを参照として使用し、彼らの投稿を恥知らずにコピーし、修正しました。


1
逐語的にコピーするのではなく、それらを信用する方が良いと思いますが、あなたの答えが正確にどのように異なるかについて明確にしてください。私はこれがパスワードなしのsu代わりに/ パスワードなしを許可すると仮定しますsudoか?ちなみに、ダニエルの追加は単なる書式設定です。
mwfearnley
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.