debian wheezyでsudoersファイルを適切に設定する方法は?


10

私は多くのブログ投稿を見てきました、それで十分です

aptitude install sudo
su root
adduser USERNAME sudo

しかし、これはを保護するだけです。aptitudeつまり、

  • aptitude install sendmailパスワードを要求します。実行する必要があり sudoますaptitude

  • apt-get install sendmailパスワードを要求しないので、sudo特権は必要ありません

  • 保護されたファイルを編集する場合、etcその中のファイルはパスワードを要求しないので、sudo特権は必要ありません

  • のようなサービスを実行および停止できapacheます。パスワードを要求することはなく、sudo特権は必要ありません。

これを修正するには?これは私のsudoersファイルです:

 This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:$

# Host alias specification

# User alias specification

# Cmnd alias specification

これは次の出力ですsudo -l

Matching Defaults entries for root on this host:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

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

3
以降su rootrootユーザーとしてログインしているため、すべてに完全にアクセスできます。sudo特権操作に使用する必要がある通常の使用に戻るには、として実行しているシェルからログアウトしrootます。
2013

私はLinuxの新人ですが、Debian wikiは言う-adduser
AntiCZ

回答:


16

sudoルールを追加していないため、sudoを何にも使用できません。

このコマンドadduser USERNAME sudoは、指定されたユーザーをというグループに追加しますsudo。その名前のグループが存在している必要があります。addgroup sudoない場合はで作成してください。ユーザーをグループに追加した後、グループメンバーシップを有効にするには、ユーザーはログアウトして再度ログインする必要があります。

sudoは特別なグループ名ではありません。これは、呼び出されたグループのユーザーがユーティリティsudoを介してrootとしてコマンドを実行できるようにするための規約sudoです。これには、sudoersファイルに次の行が必要です。

%sudo ALL = (ALL) ALL

実行visudoしてsudoersファイルを編集します。直接編集しないでください。

「適性を守るだけだ」とあなたが信じる理由がわかりません。適性について特別なことは何もありません。rootとしてコマンドを実行する権限をユーザーに付与すると、そのユーザーはsudo aptitude …or sudo apt-get …またはを実行したりsudo service …sudoedit編集にroot権限が必要なファイルを編集したりできます。sudoersファイルに含まれていても、ユーザーの特権が直接変更されるわけではありませんsudo。実行すると、rootとしてコマンドを実行できるようになります。コマンドは、を介して実行した場合にのみルートとして実行されますsudo。一部のプログラム、特にユーザーインターフェイスが特別な権限なしで実行され、バックエンドのみがrootとして実行されるGUIプログラムがそれを自動的に行う場合がありますが、rootとして実行されるコマンドは常にによって実行されsudoます。


彼はsudo -lrootとして実行しました。ユーザーにとって有用な定義があったとしても、それらは表示されませんでした。したがって、「sudoルールを追加していない」という推測は間違っている可能性があります。
Hauke Laging 14年

@HaukeLagingコメントを理解できません。「sudoルールを追加していない」というのは推測ではありませんsudoers。ファイルが問題になっています。
Gilles「SO-邪悪なことをやめる」14年

私は落ち込んでいましたが、sudo -l出力に集中しすぎていることに気づきましたが、幸いにも...質問の内容は、出力と一致していないため、ファイル全体にすることはできないようです。少なくとも私のsudoバージョンでは、コマンドの定義なしで(質問のもののように)「ユーザーrootは次のコマンドを実行できます」と主張していませsudoers
Hauke Laging 2014年

@HaukeLagingそうです、私はwheezyで確認しましたが、確かsudo -lに「ユーザーrootがdarkstarでsudoを実行することは許可されていません。」とだけ言っています。そして、sudoグループはデフォルトでwheezyのsudoersファイルにあります。必要なエントリがの下のファイルに移動された可能性があります/etc/sudoers.d。いずれにせよ、sudoersファイルに含まれているものは何でも、Fischerが想定していることは行いません。
Gilles 'SO-悪をやめる'

4

どのようなことが起きていることです:sudoがパスワードをキャッシュされます。したがって、システムでのsudoの実装を正しく完了した後、最初のコマンドのパスワードを入力する必要があります。その後、しばらくの間キャッシュされます。それが起こり、シーケンスを実行した場合

sudo aptitude install sendmail
sudo apt-get install sendmail

次に、最初のコマンドでパスワードを提供する必要がありますが、2番目のコマンドでは提供しないでください(少なくともタイムアウト内にいる間は)。これは、最初のコマンドのみを保護し、2番目のコマンドは保護していないように感じるかもしれません。詳細な情報(完全なシェルトランスクリプト)がなければ、伝える方法はありません...


はい。一方は他方を除外しません。正しい答えはsudoを正しく設定する方法をうまく説明しており、その意味でそれは質問に答えます。質問の言葉で「適性を保護するだけ」である理由は説明されていません。Gillesは自分に次のように書いています。「なぜ「適性を守るだけ」だとあなたが信じているのか、私にはわかりません」。私が言ったように、その現象を本当に理解するには、より多くの情報が必要です。私の回答が事実上正解であり、元の質問に対処し、既存の回答のギャップを埋めていることを考えると、反対投票は少し厳しいと思います。
ジョセフ

これはフィッシャーの混乱の原因かもしれません。
Gilles 'SO-悪をやめる'

0

上記の答えに従うと、あなたは正しい方向に進んでいます。少なくとも私のDebian Jessieでは、パス/ sbinにあるコマンドの/ usr / binへのソフトリンクを作成しました。例:/ sbin / ifup、/ usr / binへのソフトリンク(ln -s)を配置して使用できます。

もう1つの重要なことは、NOPASSWDを次のように配置することです。

User_Alias NET = goviedo
Cmnd_Alias ETH = /sbin/ifup
NET ALL = NOPASSWD:ETH
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.