Linuxでは、同じUIDとGID、特にUIDとGID 0を使用して複数のユーザーを作成できますか?

Linuxでは、同じUIDとGID、特にUIDとGID 0を使用して複数のユーザーを作成できますか?

これArchWiki - スナップショットページバックアップを実行するためにリモートでログインするユーザーを作成する方法と、設定を使用してuid複数gidのユーザーを作成する方法が挙げられます。0

バックアップサーバーの脆弱性による潜在的な損傷を軽減するためにできることの1つは、クライアントシステムに代替ユーザーを作成することです。UIDそしてジド0に設定しますが、scponlyなどのより制限的なシェルを使用してください。

私の考えでは、これらのアカウントにユーザーの読み取り/書き込み実行権限を付与することが目的ですが、rootログインシェルが制限された権限を付与している場合にのみ可能です。

gidこれは、アカウントが同じuidでアカウント名で区別され、同じでgid同じuidアクセス権を付与することを意味しますか?

答え1

オペレーティングシステムに対する権限に関して、すべての権限は名前ではなく、UIDとGIDに関連付けられます。したがって、誰かのUIDが0(既存のUnixモデルで)の場合、そのユーザーはrootであり、ログインに使用された名前に関係なく、自分に関連するすべての権限を持ちます。

ただし、リモートでログインしている場合は、同じIDに対して複数のユーザー名を持つことができ、各ユーザーに異なるシェルを提供できます。従来の Unix passwd データベースと Shadow データベースはシェルやその他の情報をユーザー名として保存するため、たとえば UID 0 に代替ユーザー名を指定するとtoor(一部のシステムの一般的な回避策)、そのユーザーのシェルがデータベースにリストされ、パスワードが参照されます.になります。アクセス権と使用するシェルを決定します。ログインに成功した後、OpenSSH またはログインプロセスは、ユーザーとグループを指定された ID に変更し、指定されたシェルを実行します。

ログインすると、プロセスはまだroot権限を持っていますが、実行中のシェルは制限されたプログラムセットにのみアクセスを許可できます。シェルが実際に制限されており、他のアクセスが許可されていないと仮定すると、アクセスはこの方法で制限される可能性があります。ただし、バグなどによりシェルが破損した場合は、root 権限で実行できます。

答え2

主にログイン中にユーザー名を考慮する必要があるさまざまな状況があります。ユーザー名はユーザーエントリを決定します(例えば)だけで/etc/passwdなく、補助グループ(例えばから/etc/group)。

複数のユーザーが特定のuidおよび/またはプライマリgidを共有できますが、それでも他のシェルとセカンダリグループを持つことができます。与えられたセッションに対してuidとgidを定義した場合、これは一般的に重要です。プロセスには、ユーザー名とグループ名ではなく、uidとgidがあります。権限は名前ではなくIDによって決定されます。

以前は、システムに複数のID 0アカウントがあることが一般的でした。 1 つは通常のシェル、もう 1 つは静的にリンクされた回復シェルです。 ID 0アカウントをバックアップし、任意のファイルをコピーできるということは(あなたが言及したように)前例のないことではありません。どちらのユースケースもますますまれになっています。直接ルートログインは一般的ではなく、システムの復元には静的シェルは必要なく、プールベースのバックアップシステムはデーモンプロセスに依存することがよくあります。

関連情報