web-dev-qa-db-ja.com

通常のユーザーとシステムユーザーの違いは何ですか?

一部の documentation ユーザーが「システム」ユーザーであるか「通常」ユーザーであるかを示すブールスイッチがあります(デフォルトは「通常」)。

これら2つのユーザーシップモードの違いは何ですか?私はユーザーが何であるか、なぜあなたがそれらを必要とするのか(「偽の」ものであっても)を学ぶ必要はありませんが、この特定の区別は私には直感的ではありません。

134
Sean Allred

それは技術的な違いではなく、組織の決定です。例えば。ログインダイアログに通常のユーザーを表示することは理にかなっています(ユーザー名を入力する代わりにユーザーをクリックできるようにするため)が、システムアカウント(デーモンやその他の自動プロセスが実行されるUID)を表示することはできません。

したがって、境界線が定義されるか、2つのグループのUIDの2つの範囲が定義されます。 openSUSEでは、ファイル/etc/login.defsには次の行が含まれます:

#useraddでの自動UID選択の最小/最大値
#
#SYS_UID_MINからSYS_UID_MAXまでの範囲は、動的に割り当てられた管理アカウントとシステムアカウントの
#UIDの範囲です。
#UID_MINからUID_MAXは、動的に割り当てられるUIDの範囲です
#割り当てられたユーザーアカウント。
#
 UID_MIN 1000 
 UID_MAX 60000 
#システムアカウント
 SYS_UID_MIN 100 
 SYS_UID_MAX 499

そして

#groupaddでの自動GID選択の最小/最大値
#
#SYS_GID_MINからSYS_GID_MAXまでは、動的に割り当てられた管理グループとシステムグループのGIDの範囲です。
#GID_MINからGID_MAXまでは、動的に割り当てられたGIDの範囲です
#割り当てられたグループ。
#
 GID_MIN 1000 
 GID_MAX 60000 
#システムアカウント
 SYS_GID_MIN 100 
 SYS_GID_MAX 499
92
Hauke Laging

主な違いはアカウントの目的であるため、主に管理者と監査者にとって有用な区別です。 adduser のドキュメントから、いくつかの技術的な違いがあります:

システムユーザーは/etc/shadowにエージング情報なしで作成され、数値識別子はSYS_UID_MINで定義されているSYS_UID_MAXの範囲で/etc/login.defsではなくUID_MINで選択されます] _–UID_MAX(およびグループを作成するための対応するGID)。

私が知る限り(Puppetはわかりません)、Puppetの観点からの違いは、-rオプションをadduserに渡すかどうかです。

より広い見方については、 アカウントを/ etc/passwdから「隠す」ことは可能ですか? を参照してください。