第1四半期

第1四半期

このsudoersファイルには、次の行のいずれかを含めることができます。

modernNeo ALL=(ALL:ALL) ALL
modernNeo ALL=(ALL) ALL

私はこれを理解するためにここで次の答えを見ました。

質問1

上記の答えを正しく理解した場合:

  • (ALL:ALL)すべてのユーザーとグループでコマンドを実行できることを意味します。
  • (ALL)これは、すべてのユーザーでコマンドを実行できますが、グループは同じままです。 [これは自分のグループです] - sudo3番目のアイテムでwithを使用するとき、どのユーザーになっても構いません。ALL

質問2

しかし、一緒に(ALL:ALL)

  • 任意のグループで実行できる場合、sudoを使用してコマンドラインで指定されていないように、sudoはコマンドを実行するグ​​ループをどのように決定しますか-g
  • まず、自分のグループで実行しようとしてから、コンピュータのすべてのグループのリストを見て、コマンドを実行できるグループを探しますか?
  • グループリストはどこから取得され、そのリスト内のグループの順序は何ですか?
  • rootまたは、目的のユーザーおよび/またはグループのデフォルト設定を指定しないと、そのユーザーおよび/またはグループに使用されるものに戻りますか?それでは(ALL:ALL)できますが、なぜそうするのですか(root:root)

質問3

また、このUbuntuフォーラムの投稿、次の行について

%admin ALL=(ALL) ALL

%sudo   ALL=(ALL:ALL) ALL  

彼らは言った

管理者グループのユーザーは root にできます。 sudoグループのユーザーはsudoコマンドのみを使用できます。たとえば、彼らはできませんsudo su

(ALL:ALL)(user:group)使い方を知るという意味だsudo。実行時に使用して指定できます-u。何も指定しない場合はデフォルトで実行されます。とにかく、ほとんどの人は最終的にそれを使用します。-gsudoroot:root

これは私を混乱させます。コマンドを実行するときにどのグループにも参加できる場合は、ルートになることはできません。

答え1

次の行:

smith ALL=(ALL) ALL

ユーザーsmithはsudoを使用して、すべてのコンピューター(最初のALL)からすべてのユーザー(2番目のALL、括弧内の項目)にすべてのコマンド(最後のALL)を実行できます。 sudo は次のコマンドを受け入れます。

smith@site ~ $ sudo -u root -g root bash

しかし、次はそうではありません。

smith@site ~ $ sudo -u root -g smith bash

まだグループ権限が宣言されていないからです。

しかし、これは:

smith ALL=(ALL:ALL) ALL

このコマンドは実行が許可されます(ユーザーtomとグループsawyerが存在すると仮定)。

smith@site ~ $ sudo -u tom -g sawyer bash
tom@site ~ $ id
uid=1023(tom) gid=1087(sawyer) groups=1047(tom),1092(sawyer)

それでも:

第1四半期

(ALL:ALL)は、すべてのユーザーとすべてのグループでコマンドを実行できることを意味します。

はい

(ALL) は、すべてのユーザーでコマンドを実行できることを意味します。

はい

…しかし、あなたのグループは同じままです。 [それはあなたのグループです。]

いいえ、許可される唯一のグループはですroot

第2四半期

コマンドラインでsudoを使用してグループを指定していないかのように、sudoはコマンドを実行するグ​​ループをどのように決定しますか-g

デフォルト値はroot

まず、自分のグループで実行しようとしてから、コンピュータのすべてのグループのリストを見て、コマンドを実行できるグループを探しますか?

いいえ。

グループリストはどこから取得され、そのリスト内のグループの順序は何ですか?

登録された商品はありません。上記のように、ただ使用時root にはデフォルト値に属しuser:ALLuser:group使用時には名前付きグループに属することになります。

単純なルール、簡単な行動。

rootまたは、目的のユーザーおよび/またはグループのデフォルト設定を指定しないと、ユーザーおよび/またはグループに使用されるように戻りますか?

はい。

それでは(root:root)できますが、なぜ(ALL:ALL)を行うのですか?

それで(ALL:ALL)できるので:

sudo -u tom -g sawyer id

しかし、それでしか(root:root)できません:

sudo -u root -g root id

他に何もありません(ユーザーとグループの面で)。

第3四半期

次の行の場合:

    %admin  ALL=(ALL)     ALL
    %sudo   ALL=(ALL:ALL) ALL  
    

管理者グループのユーザーは root にできます。

はい、グループ(%)のユーザーはadminすべてのユーザー(ルートを含む)にすることができますが、グループ(ALL)のみrootが可能です。

sudoグループのユーザーはsudoコマンドのみを使用できます。

これは正確ではありません。グループ(%)のユーザーはすべてのsudoコマンド(最後のコマンドALL)を実行できます。

グループ(%)のユーザーsudoはすべてのユーザーにすることができます((ALL:)部分)。 そしてすべてのグループ((:ALL)一部)そしてすべてのコマンド(最後のコマンドALL)を実行できます(特に誤ったsudoだけでなく)。

たとえば、彼らはできませんsudo su

いいえ、彼らはできsudo suますsudo lssudo anycommand

(ALL:ALL)(user:group)使い方を知るという意味だsudo。実行時に使用して指定できます-u-gsudo

ここには正しいです。コマンドはsudo -u tom -g sawyer ls正確で有効です。

何も指定しない場合はroot:rootデフォルトで実行されます。

これはここでも同様です。コマンドは資格情報(たとえば、許可/権限)を使用して実行されますsudo lsroot:root

とにかく、ほとんどの人は最終的にそれを使用します。

そうですね。最も一般的に使用されるsudoコマンドは、ユーザーやグループを指定しません。だからそれ「とにかく最もよく使われる」(基本root:root)。

混乱しています...コマンドを実行すると、どのグループでも許可できると言われています...

(ALL:ALL)はい、コマンドはsudoすべてのユーザーまたはグループで機能できると指定されています。

そして:

...では、ルートになることはできませんか?

いいえ、この説明は正しくありません。

  • sudoを使用すると、(ALL:ALL) ALLすべてのグループのすべてのユーザーになり、すべてのコマンドを実行できます。根までも。

  • sudoを使用すると、(ALL) ALLグループを設定する機能は失われますが、まだユーザーを設定してすべてのコマンドを実行できます(sudo su -許可されています)。

関連情報