私は半世紀以上に渡るUnixの経験をチェックしましたが、私の同僚も私もグループ(sg
とgpasswd
)にパスワードを設定したことがありません。グループパスワードの典型的な使用例は何でしょうか、それとも歴史的な理由から、それはほとんどそこだけにありますか?
私もこの機能が使用されたのを一度も一度も見たことがありません。ほとんどのSAは、この機能が存在することすら認識していません。 gpasswd
のmanページを見ると、次のようなメモがありました。
グループパスワードに関する注意
Group passwords are an inherent security problem since more than one person is permitted to know the password. However, groups are a useful tool for permitting co-operation between different users.
ユーザーのパスワードのモデルを模倣するのは自然なアイデアだったと思います。そのユースケースモデルをグループにも複製することは理にかなっていると思います。しかし、実際には、それらは実際には何の役にも立ちません。
グループパスワードの考え方は、特定のグループ(メンバーとしてリストされていないグループ)にアクセスする必要がある場合は、newgrp
コマンドを使用してアクセスすることができ、チャレンジを受けることができるということです。これらの代替グループにアクセスするためのパスワードを使用します。
それらの大きな問題は、各グループに単一のパスワードしかないため、複数のユーザーがこの特定のグループへのアクセスを必要とする場合に、人々にこの単一のパスワードを共有することを強いることです。
私が遭遇したほとんどの環境では、通常、ユーザーをセカンダリグループに配置し、これらのグループにファイルシステム上のファイルへのアクセス権を付与しています。
Sudo
の登場により、必要に応じて追加の権限をグループに渡すことができるようになり、グループのパスワードが提供していた使用例がさらに損なわれる可能性があります。ユーザーにさらに多くの権限を許可する必要がある場合は、Sudo
にロールを作成し、ユーザーが所属するユーザー名またはグループと、特定のタスクを実行できるように権限を昇格する権限を許可する方がはるかに簡単でした。
最後に、アクセス制御リスト(ACL)を作成する機能は、ユーザー/グループ/その他のアクセス許可モデルだけでは提供できない柔軟性の最後のビットを実際に提供し、グループパスワードの必要性を曖昧に追いやっていました。
ログが私のアカウントがブルートフォースにされている(または辞書攻撃であった可能性がある)ことを示しているので、ここにグループパスワードの実用的な使用方法を示します。
私はssh-keygen
とputtygen
を丁寧に使用して、ワークステーションと自宅のコンピューターから使用するためのキーペアを生成しました。自宅で使用するキーにはパスワードが必要です。私は両方の公開鍵を.ssh/authorized_keys
に追加し、パスワードなしでメンバーmarionette
を作成しました。 rootとしてvisudo
を使用して、次の行を追加しました。
Cmnd_Alias SUDOING = /bin/bash, /usr/bin/Sudo -i
%marionette ALL=NOPASSWD:SUDOING
私は私のアカウントのパスワードを無効にしました、あなたは誰もその方法でそれにログインすることができません。私は自分のキーでのみログインし、newgrp marionette
でパスワードで保護されたグループを入力すると、Sudo -i
を使用してrootになることができます。NOPASSWD:
オプションなしでは、ユーザーアカウントパスワードが必要になります。無効になっていて、このグループにNOPASSWD
がない場合、Sudo -i
を実行できません。コマンドリストに/bin/bash
またはデフォルトでrootが使用しているシェルがない場合は、ユーザーアカウントパスワードも必要です。
これにより、sudoを実行するためのパスが数ステップ長くなりますが、セキュリティが強化されます。すべてのアカウントをこのようにする場合は、パスワードとSudo権限を持つローカルアカウントを1つ作成しますが、/etc/ssh/sshd_config
からのsshエントリを拒否するには、次のように追加します。
DenyUsers root caan
DenyGroups root daleks
これは、再インストールしてアクセスキーのバックアップを忘れた場合のローカルアクセスに必要です。
そのパスワードの使用例も見たことがありません。そして、それは* nixの約20年の経験です。
頭に浮かぶのは、「!」に設定することだけです。 -ロックされているため、そのグループのメンバーでないユーザーはnewgrp
コマンドを使用してグループに変更できません。
SLESの/ etc/groupまたはRedHatベースのシステムの/ etc/gshadowを調べると、これは「典型的な」使用例のようです。 SLESは、そのパスワードのシャドウメカニズムを作成することさえしませんでした。
ユースケースを提案させてください。
まず、「ユーザー」という言葉に慣れすぎて、考えもしなかったとしましょう。しかし、「ユーザー」は実際にはuserではありません。たとえば、家には3台のコンピューターがあります。妻のラップトップ、私のラップトップ、および一般的なデスクトップコンピューターです。私は妻のラップトップを使用するとき、彼女のユーザーアカウントでログインします。彼女が私のラップトップを使用するとき、彼女は私のユーザーアカウントでログインします。誰かがデスクトップを必要とする場合、彼または彼女は1つの共通アカウントを使用します。ここで、コンピュータシステムが「ユーザー」と呼ぶものは、実際にはuserではなく、workflow-一連のアクティビティ。
ここに質問があります:なぜ私は複数のアクティビティを持つことができないのですか?できます。現在のタスクに集中できるように、仕事用のコンピューターでさまざまなユーザーを(実験的に)作成しました。これらのすべてのユーザーを同じグループに入れて、現在使用しているユーザーに関係なくファイルにアクセスできるようにしました。
では、gpasswdはこれにどこに適合するのでしょうか。
Ubuntuのデフォルトの動作では、すべてのユーザーに対して特別なグループを作成します。
これらのプライマリグループをusersと見なし、システムユーザーをワークフロー?
これらの新しいユーザーがログインするにはパスワードが必要になるよりも、そうですか?ここがgpasswdの場所です。私はまだグループでログインする方法を理解する必要があります(この時点までに知っていることは、すでにログインしている場合はgpasswdでグループを切り替えることができるということです)。