私は個人的に一般的にDebianベースのシステムを使用していますが、*nixオペレーティングシステムスイート全体については、次の質問があります。
Apache / Nginxはすでにいくつかの* nixシステムに付属しているため、ユーザーは通常www-data
Apache / Nginxを使用しますか、または通常は特定のソフトウェア(Apache / Nginxなど)を使用して作成されますか?
すでにいくつかのシステム(私の場合はDebian)が付属している場合は、Apache / Nginxをインストールする前にApache / Nginx以外のソフトウェア用に作成するのを防ぐことで直接作成できるため、競合の可能性を回避できます。
ところでAnsibleとbecome: yes
。
答え1
Ansibleを使用しているので、次のように存在するwww-data
ユーザーを指定する必要があります。ユーザーモジュールその他のstate=present
適切な属性(例えば system=yes
)。必要に応じてユーザーが作成され、ユーザーがすでに存在する場合は作成されません。これは構成管理の一般原則です。システムに到達するためのステップではなく、システムが処分されることを望む状況について説明します。
Debian とおそらくほとんどの派生製品では、www-data
ユーザー常に存在する、これは特定のパッケージによって独自の目的で作成されていません(「作ったbase-passwd
、その他すべての項目は基本的に/etc/passwd
)。他のシステムについては何も知りません。
答え2
Red Hatディストリビューションおよび派生製品では、パッケージインストーラには通常、プレインストールスクリプトに「ユーザー作成」コマンドが含まれています。 CentOS 7では、次のようにrpm -q --scripts httpd
表示できます。
preinstall scriptlet (using /bin/sh):
# Add the "apache" group and user
/usr/sbin/groupadd -g 48 -r apache 2> /dev/null || :
/usr/sbin/useradd -c "Apache" -u 48 -g apache \
-s /sbin/nologin -r -d /usr/share/httpd apache 2> /dev/null || :
これは私たちに多くを伝えます:
- Red Hatおよびその派生製品では、ユーザーを次のように呼び出します。
apache
- また、次のファイルを生成しようとします。
apache
- useridとgroupidは48になると予想されます。
- ただし、ユーザーまたはグループがすでに存在する場合、インストールは続行されます。