sudoサービスは何をしますか?


17

私の知る限り、他の人も同じ意見を持って いるようですsudo。管理者権限で何かを実行するコマンドです。

ただし、実行するrcconfと次の行が表示されます。

[*] sudo    Provide limited super user privileges to specific users

このサービスのポイントは何ですか?それともサービスですか?


これは私がグーグルを検索中に見つけたものです
-adi

「これがsudoの出番です。許可されたユーザー(通常は「管理者」ユーザー。詳細についてはAddUsersHowtoを参照してください)がルートパスワードを知らなくてもルートとして特定のプログラムを実行できます。」-それはまさに私の質問で言ったことです。
s3v3n

3
質問はサービスではなく、コマンドについてです
s3v3n

回答:


22

短い答え

再起動時にユーザーの「キャッシュされた」認証アクションを取り消すため。これはデーモンではなく、起動時に実行されるスクリプトです。


幅広い回答

/etc/init.d/sudo「サービスを開始する」initファイルを調べることで、それが何をしているのかを簡単に確認できます。

case "$1" in
  start)
        # make sure privileges don't persist across reboots
        if [ -d /var/lib/sudo ]
        then
                find /var/lib/sudo -exec touch -t 198501010000 '{}' \;
        fi
        ;;
  stop|reload|restart|force-reload)
        ;;
  *)
        echo "Usage: $N {start|stop|restart|force-reload}" >&2
        exit 1
        ;;
esac

したがって、基本的に/var/lib/sudoは、システムの起動時にいくつかのファイルに触れるだけで、非常に古い変更タイムスタンプが設定されます。その結果、サービスの開始時に「キャッシュされた」認証アクションが取り消されます(起動時に発生します)。

/var/lib/sudoディレクトリの詳細とそれらのタイムスタンプをお願いします。さて、の地図からsudo(8)

[...]
Once a user has been authenticated, a time stamp is updated and the
user may then use sudo without a password for a short period of time
(15 minutes unless overridden in sudoers).
[...]
Since time stamp files live in the file system, they can outlive a
user's login session.  As a result, a user may be able to login, run a
command with sudo after authenticating, logout, login again, and run
sudo without authenticating so long as the time stamp file's
modification time is within 15 minutes (or whatever the timeout is set
to in sudoers).
[...]
/var/lib/sudo           Directory containing time stamps

完璧な答え:)
s3v3n

12

sudoサービスファイルは、のために呼ばれる特権が再起動後に滞在していないことを確認するために存在します。基本的に、再起動後、ルート権限を要求した通常のユーザーは通常のユーザーのままであることが保証されます。


sudoに関する詳細な説明

以下の説明はすべて、この質問を読んだすべての人のすべての情報を取得し、サービスフォルダー内のsudoファイルが何をしているのかを説明することです。

あなたは、Ubuntuのか、使用する他のディストリビューションをインストールするとsudoされて間の差ルートおよび使用するユーザーであることsudoの特権(管理者またはスーパーユーザー権限)「のようなルートを」得るためには、次のですが。

ルートとして

  • セッションで実行する各コマンドまたはすべてのコマンドのパスワードは求められません。
  • 実行するすべてのコマンドがデフォルトで記録されるわけではありません
  • システムは、ユーザーが何をしているのかを知っていると仮定します(コマンドを実行するたびにパスワードを要求しない理由)
  • 間違えた場合、二度目のチャンスや最後の選択肢はありません

sudoとして

  • セッションで実行する各コマンドまたはすべてのコマンドのパスワードを求められます。たとえば、ターミナルを開いて管理者権限が必要なコマンドを実行すると、ターミナルを閉じるかログアウトするまで、そのセッションのパスワードが1回要求されます。これは、使用するコマンドと場所によって異なります。1回または複数回尋ねることがあります。
  • スーパーユーザー特権コマンドを使用する許可を実際に求めているため、実行するすべてのコマンドがログに記録されます。
  • システムは、ユーザーが一時的に許可を求めていると想定し、管理者権限は一時的に貸し出されます(ログアウトするまで、端末を閉じるなど)。
  • 間違いを修正するための最後のオプションがあります。これは、パスワードの入力を求められた瞬間に行われます。

SUDOが作成された理由

SUDOの作成は、過去にルートを使用すると解決策よりも多くの問題が発生したために行われました。ユーザーにはすべての権利がありました。つまり、春のクリーンアップを行い、文字通り/usr/libおよび/binフォルダーを削除した場合(必要ではないと思ったため)。過去の多くの問題は、ユーザーがrootを使用したときの力を知らなかったためです。基本的に彼らはルートを持っていましたが、Linux、ファイルシステム階層、重要なファイルなどを理解していませんでした。(フェラーリを持っていて、高速道路での運転方法を知らないようなものです!)

SUDOは、何かを行うために一時的な管理者権限が必要なGUIアプリ(Update Managerなど)でも使用されます。特定の量のコマンド(通常は1)に対してのみ必要であり、ユーザーレベルの特権に戻ります。これは、常にroot権限を持つことを避け、ユーザーがシステムの重要な部分を削除することを決めた場合に間違えないようにするためです。

さらに、rootユーザーはデフォルトで無効になっているため、セキュリティが向上します。

最後に、デスクトップPCまたはサーバーを使用している場合、すべてのユーザーがrootになったり、すべての管理者特権を持つことは望ましくありません。あなたの妹や弟が、キーに/boot会ったらどうなるのだろうかと考え始めたら、非常に悪い考えですDEL。これは、sudo何か悪いことが起こる可能性を減らすためです。

特定のユーザーに制限されたスーパーユーザー権限を提供するとはどういう意味ですか?

1人または複数のsudoユーザーには、特定のユーザーのsudoコマンドがどの程度制限されているか、または開いているかを示す構成ファイルが実際にあります。ファイルに/etc/sudoersは、sudoユーザーにアクセスを制限または許可するためのすべての情報が含まれています。デフォルトでは、すべてにアクセスできますが、必要に応じて設定または制限できます。

man sudoersターミナルでsudoersファイルタイプを使用する方法については。たとえば、通常の形式は次のとおりです。

ユーザーホスト=コマンド

たとえばcyrex server1 = /bin/ls、ホストserver1のユーザーcyrexにlsコマンドを実行するアクセス権を付与します。

たとえばcyrex server1 (root) = /bin/ls、ホストserver1のユーザーcyrexに、rootとしてlsコマンドを実行するアクセス権を付与します。

たとえばcyrex ALL = /bin/ls、すべてのホストのユーザーcyrexにlsコマンドを実行するためのアクセス権を付与します。

たとえばcyrex ALL = ALL、すべてのホストのユーザーcyrexにすべてのコマンドを実行するためのアクセス権を付与します。

たとえば、パスワードを要求せずに、root およびコマンドでluis ALL=(root) NOPASSWD: /bin/kill, /usr/bin/killallsudoを実行できます。killkillall

ここに画像の説明を入力してください


2
彼はsudoコマンドが何をするかを知っています。問題は、sudoのシステムサービスについてです。
gertvdijk

1
@gertvdijk-彼だけがこの質問を見ていないので、私は最初に基本を説明しなければなりませんでした。最後の部分には、サービスフォルダー内のsudoファイルで見られる唯一の理由が含まれています。
ルイスアルバラード

Luis Alvaradoに感謝します。このような広範な情報と、bang bang演算子を参照する面白い変更されたxkcdに感謝します!!が、サービス(コマンドでsudoはありません)は何をしますか?答えを更新して質問に実際に答えることができたら素晴らしいと思います。
s3v3n

1
最後のフレーズですべてを説明するのは少しやり過ぎですが、私の質問に答えます;)
s3v3n

1
@ LuisAlvarado-TheWolverineハハ、あなたの権利。それはあなたが私を応答することは良いされていたそう、私がやった ...おかげで
ルシオ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.